2016-04-28 55 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