谁能告诉我此查询出了什么问题?

时间:2019-12-04 04:51:07

标签: mysql sql database

INSERT INTO companies(company_code, company_title, group_id, created_by, 
created_at, updated_at, deleted_at) 
VALUES('2','"pkgs','1','test',NOW(),NOW(),'');

1062-密钥“ company_code”的条目“ 2”重复

3 个答案:

答案 0 :(得分:0)

尝试一下:

declare @company_code as varchar(10) = '2'

INSERT INTO companies(company_code, company_title, group_id, created_by, 
created_at, updated_at, deleted_at) 
select @company_code,'"pkgs','1','test',NOW(),NOW(),'' where not exists(Select 1 from companies where company_code = @company_code)

答案 1 :(得分:0)

您的company_code是主键,并且db中已经存在company_code = 2的数据,因此,每当您尝试运行此查询时,它将引发重复错误。运行更新查询以更新值,或者删除此行并插入新行。

答案 2 :(得分:0)

您不能在PRIMARY KEY列中插入重复的条目。如果要在多行中使用相同的company_code,则需要更改PRIMARY KEY。如果要像ID一样使用此列值,则可以实现AUTO_INCREMENT(在MS SQL Server中为IDENTITY),这将自动设置列值并在每行中递增。无需通过脚本传递此值。

CREATE TABLE companies (
    company_code int NOT NULL AUTO_INCREMENT,
    ...................
    ...................
    PRIMARY KEY (company_code)
);

然后您可以插入类似的值

INSERT INTO companies(company_title, group_id, created_by, 
created_at, updated_at, deleted_at) 
VALUES('"pkgs','1','test',NOW(),NOW(),'');