如何在不使用SQL中的唯一/主键关键字的情况下将数据唯一地插入表中?还有其他方法吗?

时间:2017-09-10 12:11:00

标签: mysql sql database relational-database

我想将数据插入到不能多次插入数据的列中!没有相同类型/类别的数据可以相同!  我知道更简单/最好的方法是使用将属性定义为UNIQUE / PRIMARY KEY ...但还有其他方法可以做到这一点!

1 个答案:

答案 0 :(得分:1)

您可以在插入数据之前检查数据,使用group by子句或distinct或join。这实际上取决于你的要求。

例如,如果数据完全相同,则使用DISTINCT就足够了:

INSERT INTO <YourTable>
SELECT DISTINCT ...
FROM ...

或直接检查表中是否存在数据:

INSET INTO <YourTable>
SELECT ....
FROM Table s
WHERE NOT EXISTS(SELECT 1 FROM YourTable t
                 WHERE t.type = s.type and t.category = s.category)

等等..