4
我有一個表或多或少看起來像防止MySQL的雙重插入
Name | Lastname | ID | Date
有沒有一種方法,以防止數據庫運行插入功能,如果它這樣Name
,Lastname
和ID
已經存在,但不運行的人額外的查詢搜索他?
我有一個表或多或少看起來像防止MySQL的雙重插入
Name | Lastname | ID | Date
有沒有一種方法,以防止數據庫運行插入功能,如果它這樣Name
,Lastname
和ID
已經存在,但不運行的人額外的查詢搜索他?
添加UNIQUE
約束的列,
ALTER TABLE TableName ADD CONSTRAINT tb_uq UNIQUE (ID, LastName)
一旦被執行,如果你嘗試插入其ID和姓氏已經存在的值,它會拋出異常。示例
INSERT INTO tableName (ID, LASTNAME) VALUES (1, 'hello') // ok
INSERT INTO tableName (ID, LASTNAME) VALUES (2, 'hello') // ok
INSERT INTO tableName (ID, LASTNAME) VALUES (1, 'hello') // failed
似乎正是我所需要的!謝謝! – user2228063
如果您希望查詢正常失敗,您還可以添加另一個子句「ON DUPLICATE KEY UPDATE ID = ID;」最後。 – Purpletoucan
我會傾向於讓它失敗,以至於你可以在應用程序內部處理它,但是這一切都取決於用戶的意圖 –