2016-04-28 51 views
1

我有一個mysql腳本,我將值插入到type_table。如果我再次執行這個腳本,將在type_table中插入重複值。我不想刪除type_table並重新插入,因爲id是許多其他表的外鍵。假設這個腳本將被執行多次,我該如何執行一次Insert語句。這是一種查找表,只在開始時填充一次。我的sql防止在查找表中重複插入

CREATE TABLE IF NOT EXISTS `type_table` (
    `id` INTEGER NOT NULL AUTO_INCREMENT, 
    `type_text` VARCHAR(200), 
    `create_time` DATETIME NOT NULL, 
    PRIMARY KEY (`id`), 
    INDEX (`id`) 
); 

INSERT INTO `type_table` (`create_time`,`type_text`) VALUES 
(now(), 'type1'), 
(now(), 'type2'); 
+0

''指數('id')''是多餘的。主鍵是ALREADY的索引。如果你不想插入重複值,那麼你必須添加一個唯一索引來捕獲這些插入。現在你唯一的唯一索引就是主鍵。 –

回答

2

你可以設置 'TYPE_TEXT' 在數據庫中唯一的列簡單地不允許重複值

+0

我想過,但它然後拋出錯誤,我認爲只要它工作正常。我更加想要添加IF else檢查,但除非是程序,否則我不能在腳本內部完成檢查。 – lazyguy