如何授予此权限?谢谢您的帮助!错误是:第 2 行出现错误 1142 (42000):拒绝用户“@'localhost' 执行表“student”的 CREATE 命令
CREATE TABLE STUDENT(
ID INT PRIMARY KEY,
SCORE INT
);
INSERT INTO STUDENT VALUES(1,20);
INSERT INTO STUDENT VALUES(2,50);
INSERT INTO STUDENT VALUES(3,50);
INSERT INTO STUDENT VALUES(4,68);
INSERT INTO STUDENT VALUES(5,95);
SELECT 'Student ' || ID || ' has grade: '||(CASE
WHEN SCORE<20 THEN 'F'
WHEN SCORE<40 THEN 'D'
WHEN SCORE<60 THEN 'C'
WHEN SCORE<80 THEN 'B'
ELSE 'A' END)
FROM STUDENT
ORDER BY ID;
答案1
查看GRANT 语句在 MySQL 参考手册中。您必须授予创建和选择、插入、更新、删除权限。
答案2
我的粗略评论是,我从软件开发人员的角度看待应用程序初始设计阶段的 CREATE,该阶段通常会交给 SQL 服务器的 DB 管理员角色(该角色确实具有必要的 CREATE 权限)。然后,INSERT 用于填充表,SELECT 用于提取表数据。
我想不出每次创建新记录时都需要创建新表的用例。如果删除“CREATE”语句,错误应该会消失。
答案3
语法...||
是布尔或。相反,请执行以下操作:
SELECT CONCAT('Student ', ID, ' has grade: ', (CASE...)) ...
至于GRANT
:类似于:
GRANT SELECT, INSERT, CREATE TABLE
ON studentdb.* TO user@localhost;
其中是您想要放置 的位置studentdb
的名称。DATABASE
TABLE
student
要运行GRANT
,您需要具有足够的权限。通常,这需要成为 MySQL 的root
用户。(有时是“管理员”)。