2016-04-28 3 views
1

У меня есть сценарий mysql, где я вставляю значения в тип_таблицу. Если я исполню этот скрипт, повторяющиеся значения будут вставлены в type_table. Я не хочу удалять type_table и повторно вставлять, потому что идентификатор является внешним ключом для многих других таблиц. Как выполнить оператор Insert только один раз, если этот сценарий будет выполняться много раз. Это своего рода таблица поиска, которую вы заполняете только один раз в начале.My 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')' 'является излишним. первичный ключ УЖЕ индекс. и если вы не хотите вводить значения dupe, то вам нужно будет добавить уникальный индекс, чтобы поймать эти вставки. прямо сейчас единственным уникальным индексом является первичный ключ. –

ответ

2

вы можете установить «type_text» в качестве уникального столбца в базе данных просто не позволяет Повторяющиеся значения

+0

Я думал об этом, но потом он порождает ошибку, которая, я думаю, все в порядке, пока она работает. Я больше хотел добавить проверку IF else, но я не мог сделать это внутри скрипта, если это не процедура. – lazyguy