举个例子:
有一张表,标题和出处两个列被设置了唯一属性
需求:
当两列的值完全一致时,才不会插入数据,只要两列的值有一个不同都会插入数据
尝试操作:
当使用下列sql语句进行插入操作时,发现只能插入一条数据,受到上述两个唯一列的限制,只插入了一条数据,也就是说现在是两个两个唯一列同时生效而不是组合生效
insert into xxx .... ON DUPLICATE KEY UPDATE xxx=xxx;
其他办法设想:
插入前select查询数据,根据结果判断数据是否存在
不存在则插入数据,存在则略过本次操作
目前需求:
一条sql语句解决问题,类似上述的sql
第一次提问,感谢各位了...
在MySQL中,如果你有两个或更多的唯一列,并且你想插入数据时,可以使用INSERT INTO语句。以下是一个例子:
sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
在这个例子中,table_name
是你想要插入数据的表的名称,column1
, column2
, column3, ...
是你想要插入的列的名称。value1
, value2
, value3, ...
是你想要插入的值。
如果你想插入重复的值,你可以使用DISTINCT关键字:
sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...), (value1, value2, value3, ...);
在这个例子中,如果你有一个包含重复值的表,插入的数据将会是唯一的。
注意,如果你的唯一列的名称是数字或日期,你可能需要使用TINYINT
, DATE
, TIME
, VARCHAR
, TEXT
, SET
, NULL
, UNION
, INTERSECT
, EXCEPT
, ALL
等特殊的函数或操作。