MySQL重复主键
我的主键有问题:MySQL重复主键,mysql,sql,indexing,primary-key,Mysql,Sql,Indexing,Primary Key,我的主键有问题: Create table Information ( idObject Varchar(10)not null, typeInfo Varchar(20)not null, valueInfo Varchar(1000), constraint key_Info PRIMARY KEY(idObject, typeInfo) ); 我有很多信息要插入这个表中。其中之一是错误。对于相同的对象和类型,可能会出现一些错误(错误),因此与主键存在冲突。 我不想为每
Create table Information
(
idObject Varchar(10)not null,
typeInfo Varchar(20)not null,
valueInfo Varchar(1000),
constraint key_Info PRIMARY KEY(idObject, typeInfo)
);
我有很多信息要插入这个表中。其中之一是错误。对于相同的对象和类型,可能会出现一些错误(错误),因此与主键存在冲突。
我不想为每一个信息创建索引,因为在大多数情况下它是不必要的。
我的理解是,仅仅为几行创建索引是不可能的。我怎样才能解决这个问题。
谢谢大家! 为表使用代理主键,并为对象/类型对定义单独的索引:
Create table Information (
InformationId int not null auto_increment,
idObject Varchar(10) not null,
typeInfo Varchar(20)not null,
valueInfo Varchar(1000),
KEY(idObject, typeInfo)
);
您确实需要为每一行指定某种标识符,以便能够区分相似的行。这是代理密钥的用途之一。如果该表被任何其他表引用,那么代理键还允许显式设计的外键关系,这是良好数据库设计的标志
我不知道这是什么意思:
我不想为每个信息创建索引
索引是数据库不可分割的一部分,应该在适当的情况下使用。您应该修改表结构。具有唯一值的列对于使其成为1NF是绝对必要的。没有正常化,你会有大麻烦。