mysql - 仅当两列中没有具有相同值的行(没有子查询)时,是否有一种有效的方法来插入?

标签 mysql

我知道我可以做:

INSERT INTO MyTable (name, num, dateCreated)
VALUES ( "Joe", 31, "2016-05-01 00:00:10" )
WHERE NOT EXISTS (
    SELECT num FROM MyTable WHERE num = 31 AND dateCreated = "2016-05-01 00:00:10"
)

但这非常慢,因为它在每次插入时都使用子查询。有没有更快的方法来做到这一点?

我可以在多个列上添加唯一约束吗?

我不想使用主键来测试重复

最佳答案

您可以创建唯一索引,它是两列的组合。 ALTER TABLE 学生添加唯一的 idx_row_unique(first_name,last_name,...);

关于mysql - 仅当两列中没有具有相同值的行(没有子查询)时,是否有一种有效的方法来插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752398/

相关文章:

Mysql查询根据另一个表的id替换名称

mysql - 如何在Golang中使用GORM在数据库之间切换?

php - jEditable 选择数据源

mysql - Yii - MySQL CREATE VIEW 何时被调用?

mysql - 保持从 mysql 返回的记录唯一

大表和连接的 MySQL 性能问题

php - 导出/导入表功能

mysql - 比较具有相同 ID 的行的日期时间,只返回日期时间差小于 4 小时的列

mysql - 使用 node.js,如何写入一个 MySQL 数据库并从另一个数据库读取?

php - 我想使用 php mysql 从表中检索 24 小时前发布的所有记录