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

Mysql 如何在不使用SQL中的Unique/Primary关键字的情况下将数据唯一地插入到表中?还有别的办法吗?,mysql,sql,database,relational-database,Mysql,Sql,Database,Relational Database,我想在不能多次插入数据的列中插入数据!同一类型/类别的数据不能相同! 我知道最简单/最好的方法是使用将属性定义为唯一/主键。。。但是还有其他方法可以做到这一点 插入数据之前,可以使用GROUPBY子句、distinct或join检查数据。这取决于你的要求 例如,如果数据完全相同,则使用DISTINCT就足够了: INSERT INTO <YourTable> SELECT DISTINCT ... FROM ... 或者直接检查表中是否存在数据: INSET INTO <Yo

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

插入数据之前,可以使用GROUPBY子句、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)

等等..

在插入之前,你必须先验证数据,至少这不是一个好方法。你的意思是,每次都要检查列中的每个数据,对吗?@SakibHasan也许你应该接受答案是p做的!当时我无法接受,因为系统没有让我过早接受!:这就是为什么我说这取决于要求。。每个案件都应该以不同的方式处理@jarlh,只是给了他一些信息。实际上没有人会尝试这种方法,因为有更简单的方法。。我只是想弄明白这是怎么回事。我刚刚开始学习数据库:/1尝试用简单的SQL操作解决不同的情况: