草庐IT

mysql - 在没有主键的情况下删除 MySQL 数据库中的重复条目

我收到了一个相当大的MySQL数据库,其中有很多重复项。大约三分之一的数据库是重复的。它还缺少一个主键。数据库的结构是这样的:unique_id|field01|field02|field03|field04|......|field26|field27|现在unique_id应该是独一无二的;有很多重复项。此外,对于属于特定unique_id副本的一组行,其余列可能相同也可能不同。例如,查看下面的unique_id'id_1',两个实例中的field01相同,但field02和field03不同。我想删除重复项,让每个unique_id只保留一个副本。哪个幸存下来并不重要。示例:id

php - 使用复合主键生成自增 ID

我想给一个实体(发票、订单、预订等)一个唯一的序列号,但只在那一年内是唯一的。因此,每年的第一张发票(或其他字段,例如客户)的ID为1。这意味着可以有一个复合主键(年份,ID)或一个主键(即发票ID)和其他两个列独一无二。我的问题:使用Doctrine2和Symfony2为对象提供自动生成的ID和另一个值的唯一组合的最佳方法是什么?复合键的原则限制Doctrine无法将自动生成的ID分配给具有复合主键(http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-

mysql - 删除没有主键的表中的重复行

我有一个表项,其中包含如下项name------alphaalphabetacharliecharlie在这种情况下,我将如何删除重复的行,但应该保留一条记录。上表没有任何主键。 最佳答案 试试这个DELETEFROMitemWHEREGREATEST(0,@num:=IF(NAME=@NAME,@num+1,0),LEAST(0,LENGTH(@NAME:=NAME)))>0 关于mysql-删除没有主键的表中的重复行,我们在StackOverflow上找到一个类似的问题:

mysql - 无序的 SQL 组合主键(任意顺序的整数对必须是唯一的)

我有一个主键为_id的用户MySQL表,我想将友谊(在其他用户的friend列表中的可见性)表示为具有userId外键对的表。我在想类似的东西:CREATETABLEUserFriendships(userIdAINTNOTNULL,userIdBINTNOTNULL,PRIMARYKEY(userIdA,userIdB),FOREIGNKEY(userIdA)REFERENCESUsers(_id)FOREIGNKEY(userIdB)REFERENCESUsers(_id))据我了解,这将允许(userIdA=2,userIdB=7)和(userIdA=7,userIdB=2)作为

带名称的 MySql 主键约束

数据定义语句:CREATETABLEPersons(P_IdintNOTNULL,LastNamevarchar(255)NOTNULL,FirstNamevarchar(255),Addressvarchar(255),Cityvarchar(255),CONSTRAINTpk_PersonIDPRIMARYKEY(P_Id))的值(value)和目的是什么CONSTRAINTpk_PersonIDPRIMARYKEY(P_Id)?相对于此主键(P_Id)?除了this之外,MySql文档对此并没有说太多。. 最佳答案 这与MyS

具有多个主键的mysql REPLACE查询

所以如果存在与插入数据具有相同主键的列,则MYSQL的REPLACE命令(不要与字符串替换函数混淆)替换一行...但是如果我有两个主键并且我想使用两个主键来指定要替换的行而不是其中一个....我如何指定mysql使用两个键而不是一个键 最佳答案 应该没什么区别,它们是相同的语法。只要确保将两个键都指定为列即可。例如:REPLACEINTO`my_table`(`key1`,`key2`,`othercolumn1`/*,...*/)VALUES('widgets',14,'Bluewidgetwithpurpletrim');编辑这

mysql - 主键默认值可以为 NULL 吗?为什么这样描述呢?

我有一个表,当我describe时,它是:mysql>DESCmy_table;+------------+-------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+------------+-------------+------+-----+---------+----------------+|contact_id|int(11)|NO|PRI|NULL|auto_increment||location|varchar(20)|YES||NULL|||city

mysql - 是否需要主键?

这个问题在这里已经有了答案:SQLPrimaryKey-isitnecessary?(5个答案)关闭6年前。在数据库系统中,每个表都应该有一个主键吗?例如我有一个表table1(foreignkey1,foreignkey2,attribute)就像this.table1没有主键。我应该像table1id一样为这个表定义一个主键吗?

mysql - MySQL 中的两列主键

我有一个非常简单的问题和一个可行的解决方案,但我正在寻找一个更简单的问题。当多个值等于现有值时,我想阻止将行添加到数据库中。例如,如果a2=a1ANDb2=b1则数据将被拒绝。如果只有a2=a1或只有b2=b1是允许的。基本上我希望它像主键一样需要两个值匹配。我知道我可以在写入数据库之前通过验证来做到这一点——例如。select*wherea='a2'andb='b2'然后在我得到结果时避免写入新数据。我宁愿做的是启用一个MySQL设置,比如主键,它会自动阻止这样的数据。除了基本功能外,我对MySQL不是很熟悉,如果这很简单,我深表歉意。在谷歌上搜索有关唯一索引和主键的各种信息都无济于

mysql - 连接表(关联表)是否有主键?多对多关系

Join表(关联表)有主键吗?多对多关系。我见过一些带有主键的Join表,有些没有提前谢谢你;-) 最佳答案 在纯“连接”或联结表中,所有字段都将成为主键的一部分。例如,让我们考虑下表:CREATETABLEUSERS(ID_USERNUMBERPRIMARYKEY,FIRST_NAMEVARCHAR2(32),LAST_NAMEVARCHAR2(32));CREATETABLEATTRIBUTES(ID_ATTRIBUTENUMBERPRIMARYKEY,ATTRIBUTE_NAMEVARCHAR2(64));它们之间的联结表允许