当我填写数据库时,我收到了主键条目重复形式的问题,但事实是我的数据库中的字段“status”字段不是主键或其部分。
CREATE TABLE IF NOT EXISTS travel.`users` ( `login` VARCHAR(25) NOT NULL, `password` VARCHAR(25) NOT NULL, `email` VARCHAR(40) NOT NULL, `name` VARCHAR(20) NOT NULL, `surname` VARCHAR(20) NOT NULL, `telephone` VARCHAR(20) NOT NULL, `role` VARCHAR(30) NOT NULL, `status` TINYINT(1) NOT NULL, `image` VARCHAR(250) NOT NULL, PRIMARY KEY (`login`), UNIQUE INDEX `login_UNIQUE` (`login` ASC)) ENGINE = InnoDB;
INSERT INTO users VALUES (login = 'admin', password = 'admin', email = 'admin@gmail.com', name = 'Иван', surname = 'Иванов', telephone = '+380674002092', role = 'ADMINISTRATOR', status = '0', image = 'D:/server/admin.img'); INSERT INTO users VALUES (login = 'manager', password = 'manager', email = 'manager@gmail.com', name = 'Петров', surname = 'Пётр', telephone = '+380964002092', role = 'MANAGER', status = '0', image = 'D:/server/manager.img');
在执行第二次INSERT期间,我收到以下错误user
答案 0 :(得分:2)
`user_id` int(8) NOT NULL AUTO_INCREMENT
您必须拥有自动增量字段。
答案 1 :(得分:0)
Remove the Column name .Do not need to specify the column.
INSERT INTO users VALUES
( 'admin', 'admin', 'admin@gmail.com', 'Иван',
'Иванов', '+380674002092', 'ADMINISTRATOR', '0',
'D:/server/admin.img');
INSERT INTO users VALUES
( 'manager', 'manager', 'manager@gmail.com', 'Петров',
'Пётр', '+380964002092', 'MANAGER', '0',
'D:/server/manager.img');
答案 2 :(得分:0)
Raja的回答是正确的,但我想为其他人添加更多信息
他的回答..
删除列名。不需要指定列。
INSERT INTO users VALUES ( 'admin', 'admin', 'admin@gmail.com', 'Иван', 'Иванов', '+380674002092', 'ADMINISTRATOR', '0', 'D:/server/admin.img');
INSERT INTO users VALUES ( 'manager', 'manager', 'manager@gmail.com', 'Петров', 'Пётр', '+380964002092', 'MANAGER', '0', 'D:/server/manager.img');
我的补充......
如果我们正在进行完全插入,我们不需要指定列,如果我们想要仅向某些行插入数据,我们只指定要插入的列。
以下是一个示例,
INSERT INTO users(login, password, status) VALUES
( 'manager1', 'manager1', '0');
这将仅在login
,password
和status
列中插入值。
另外,有一个建议,避免使用varchar
数据类型作为主键,因为它会影响主内存索引的性能。而是在大多数RDBMS中使用int
或long
(bigint
)。
而且,您可以将其设置为Auto Increment
,并且可以轻松将其用作Foreign Key
。
如果你想让它自动增加,你需要改变一下..
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),