这是我的mysql查询中的代码
require("lib/dbfunctions.inc.php");
$qry = "select max(role_id) as nextrnum from Role";
$nextrnum = execute_query($qry);
$line = get_row($nextrnum);
$nextRoleNum = "R" . str_pad((trim(substr($line['nextrnum'],1))+1),2,"0", STR_PAD_LEFT);
我在我的数据库中插入了一些看起来像这样的数据
INSERT INTO Role VALUES
('R0','IT'),
('R1','Staff'),
('R2','Administrator');
但是当我点击添加表单链接时,我收到了错误。
ERROR: Record could not be added
Duplicate entry 'R0' for key 'PRIMARY'
不确定我为什么会收到此错误
答案 0 :(得分:3)
您收到重复错误,因为您多次运行插入查询,因此尝试输入重复ID,这是由PRIMARY KEY的性质禁止的 - 这是一个唯一标识符。
相反,您只需将值保留为NULL并且MYSQL负责处理(假设您将ID字段设置为自动增量):
INSERT INTO Role VALUES
(NULL,'IT'),
(NULL,'Staff'),
(NULL,'Administrator');
否则,您可以使用备用INSERT语法,其中只指定需要手动插入的列:
INSERT INTO Role
(column1,column2,column3) // id column won't be included
VALUES
(value1,value2,value3)