Mysql [23000][1062]重复输入';0';对于键';初级';
当我填写数据库时,我收到了一个问题,即主键条目的重复,但事实上,数据库中的字段“status”字段不是主键或它的一部分 DB脚本 如果不存在,则创建表。`users`( `登录名'VARCHAR(25)不为空, `密码'VARCHAR(25)不为空, `电子邮件'VARCHAR(40)不为空, `name`VARCHAR(20)不为空, `姓'VARCHAR(20)不为空, `电话'VARCHAR(20)不为空, `角色'VARCHAR(30)不为空, `状态'TINYINT(1)不为空, `image`VARCHAR(250)不为空, 主键(`login`), 唯一索引'login\u UNIQUE'('login'ASC)) 引擎=InnoDB; SQL查询 插入到用户值中 (登录名='admin',密码='admin',电子邮件='admin@gmail.com'名称='crmk_ааа', 姓氏='CharStyleааааöff',电话='380674002092',角色='ADMINISTRATOR',状态='0', image='D:/server/admin.img'); 插入到用户值中 (登录名='manager',密码='manager',电子邮件='manager@gmail.com“,名称=”ППццццц', 姓氏='Пёёа',电话='+380964002092',角色='MANAGER',状态='0', image='D:/server/manager.img');Mysql [23000][1062]重复输入';0';对于键';初级';,mysql,database,Mysql,Database,当我填写数据库时,我收到了一个问题,即主键条目的重复,但事实上,数据库中的字段“status”字段不是主键或它的一部分 DB脚本 如果不存在,则创建表。`users`( `登录名'VARCHAR(25)不为空, `密码'VARCHAR(25)不为空, `电子邮件'VARCHAR(40)不为空, `name`VARCHAR(20)不为空, `姓'VARCHAR(20)不为空, `电话'VARCHAR(20)不为空, `角色'VARCHAR(30)不为空, `状态'TINYINT(1)不为空, `i
在执行第二次插入过程中,我收到以下错误:键“PRIMARY”的重复条目“0”Raja的答案是正确的,但我想为其他人添加更多信息
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');
他的回答..
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
删除列名。无需指定列
插入到用户值中
(‘admin’、‘admin’、’admin@gmail.com', 'Иван',
“аааааааа”和“+380674002092”、“管理员”、“0”,
“D:/server/admin.img”)代码>
插入到用户值中
(“经理”、“经理”、“经理”manager@gmail.com', 'Петров',
“Пёёа”、“+380964002092”、“经理”、“0”,
'D:/server/manager.img')代码>
我的补充…
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
如果执行完全插入,则不需要指定列;如果只想向某些行插入数据,则只需指定要插入的列
这是一个样本
INSERT INTO users(login, password, status) VALUES
( 'manager1', 'manager1', '0');
这将仅在登录
、密码
和状态
列中插入值
还有一个建议,避免使用varchar
datatype作为主键,因为这会影响主存中索引的性能。而是使用int
或long
(bigint
在大多数RDBMS中)
而且,您可以将其设置为onAuto Increment
,这样就可以轻松地将其用作外键
如果要使其自动递增,需要更改以下内容。
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
拉贾的回答是正确的,但我想为其他人补充一些信息
他的回答..
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
删除列名。无需指定列
插入到用户值中
(‘admin’、‘admin’、’admin@gmail.com', 'Иван',
“аааааааа”和“+380674002092”、“管理员”、“0”,
“D:/server/admin.img”)代码>
插入到用户值中
(“经理”、“经理”、“经理”manager@gmail.com', 'Петров',
“Пёёа”、“+380964002092”、“经理”、“0”,
'D:/server/manager.img')代码>
我的补充…
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
如果执行完全插入,则不需要指定列;如果只想向某些行插入数据,则只需指定要插入的列
这是一个样本
INSERT INTO users(login, password, status) VALUES
( 'manager1', 'manager1', '0');
这将仅在登录
、密码
和状态
列中插入值
还有一个建议,避免使用varchar
datatype作为主键,因为这会影响主存中索引的性能。而是使用int
或long
(bigint
在大多数RDBMS中)
而且,您可以将其设置为onAuto Increment
,这样就可以轻松地将其用作外键
如果要使其自动递增,需要更改以下内容。
CREATE TABLE IF NOT EXISTS travel.`users` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`login` VARCHAR(25) NOT NULL,
....
PRIMARY KEY (`id`),
您必须有一个自动递增字段
您必须有一个自动递增字段 我删除了SQL Server
标记,请不要标记与问题无关的多个标记。我删除了SQL Server
标记,请不要标记与问题无关的多个标记。非常感谢您,在编写代码之夜之后,有时会出现这样的常见错误谢谢您,在写了一夜代码之后,有时会出现这样的常见错误