簡體   English   中英

誰能告訴我這個查詢有什么問題?

[英]Can anyone tell me what is wrong with this query?

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”

嘗試這個:

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)

您的 company_code 是主鍵,並且 company_code = 2 的數據已存在於 db 中,因此每當您嘗試運行此查詢時,它都會引發重復錯誤。 運行更新查詢以更新值或刪除該行並插入新的行。

您不能在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(),'');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM