mysql - 如何在 SQL 中不使用 Unique/Primary key 关键字的情况下将数据唯一地插入到表中?还有其他办法吗?

标签 mysql sql database relational-database

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

最佳答案

您可以在插入数据之前使用 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)

等等..

关于mysql - 如何在 SQL 中不使用 Unique/Primary key 关键字的情况下将数据唯一地插入到表中?还有其他办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46140565/

相关文章:

mysql - SQL 查询 - 从多个表中添加总金额

mysql - 删除表的外键约束错误

sql - 简单的 Select 语句不返回任何结果

mysql - mysql数据库中的这个查询有什么问题?

mysql - 使用 SQL 连接时如何合并/组合数据?

sql - 如何从 Access 2010 中的 SQL 存储过程返回多个记录集

python - 在 SQL 查询中使用字典键作为字段名称

sql - Flutter从SQLite提取数据到对象/模型

php - 如何存储唯一但与数据库相关的数据点

mysql - 按月和年输入选择前 12 个月