Php 当某些行已经存在时,如何防止SQL插入?
我有一个数据库,里面有不同的电影、演员和导演 要将导演与电影连接,我使用的是一个表,其中包含以下内容: 电影id和导演id-因此,当我为电影添加导演时,必要的id会插入到此表中 所以我已经有了一堆身份证,而且效果很好。例如:Php 当某些行已经存在时,如何防止SQL插入?,php,mysql,database,Php,Mysql,Database,我有一个数据库,里面有不同的电影、演员和导演 要将导演与电影连接,我使用的是一个表,其中包含以下内容: 电影id和导演id-因此,当我为电影添加导演时,必要的id会插入到此表中 所以我已经有了一堆身份证,而且效果很好。例如: movie_id - director_id 10 15 11 17 9 13 现在,当我将另一个id为9的导演添加到id为13的电影中时,我有两行完全相同,这是我不希望发生的事情。如下所示: movie_id - di
movie_id - director_id
10 15
11 17
9 13
现在,当我将另一个id为9的导演添加到id为13的电影中时,我有两行完全相同,这是我不希望发生的事情。如下所示:
movie_id - director_id
10 15
11 17
9 13
9 13
相反,如果已经有一行具有相同的胶片id等于相同的导演id,则不应插入
我怎样才能防止这种情况发生 只需从
movie\u id
和director\u id
列创建唯一键即可
SQL示例:
ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]
然后为INSERT
查询添加IGNORE
,它将防止出现重复条目…
错误消息
SQL示例:
ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]
如果要在条目已存在的情况下更新某个数据,则可以使用
SQL示例:
ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]
如果返回的任何行数据重复,请使用select query with where子句,否则请插入数据,使这两列的数据唯一。将自动阻止数据插入数据库。