Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法避免在数据库中重复插入_Mysql_Sql_Sqlite - Fatal编程技术网

Mysql 无法避免在数据库中重复插入

Mysql 无法避免在数据库中重复插入,mysql,sql,sqlite,Mysql,Sql,Sqlite,我有一个表,我在其中添加值,我希望避免表中的所有重复插入 我的问题是: INSERT INTO Categories (Name, Image) VALUES ("Womens Fashion", "http://static.abcd.com/images/nw-cat12-big.png") WHERE Name="Womens Fashion" not in ( SELECT Name from Categories WHERE Name="Womens Fashion" ) 错误

我有一个表,我在其中添加值,我希望避免表中的所有重复插入

我的问题是:

INSERT INTO Categories (Name, Image) VALUES ("Womens Fashion", "http://static.abcd.com/images/nw-cat12-big.png") WHERE Name="Womens Fashion" not in
(
   SELECT Name from Categories WHERE Name="Womens Fashion"
)
错误消息:靠近“WHERE”的语法错误

请提前帮助和感谢。

试试这个:

INSERT INTO table1 
SELECT * 
FROM   (SELECT 'Womens Fashion'                                 name, 
               'http://static.abcd.com/images/nw-cat12-big.png' images)t1 
WHERE  t1.name NOT IN (SELECT name 
                       FROM   table1); 

创建唯一索引。所需的逻辑是什么?我不明白你想用你的查询实现什么,我想避免在名为
Name
的列中重复插入,如何在名为
Name
的列中创建唯一索引添加唯一索引,这样做可以帮助你尝试:ALTER TABLE
Categories
添加唯一索引(
Name
);好家伙,这很管用是的,我的朋友,但这是错误的做法。相关的密钥应该被定义为唯一的。谢谢你的评论,但我只是回答问题,我没有说这是好的还是坏的方法。