2016-04-28 8 views
1

私はtype_tableに値を挿入するmysqlスクリプトを持っています。このスクリプトを再度実行すると、重複した値がtype_tableに挿入されます。 idが他の多くのテーブルの外部キーであるため、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 checkを追加したいと思っていましたが、プロシージャでない限りスクリプト内ではできませんでした。 – lazyguy

関連する問題