gpt4 book ai didi

mysql - 更改 mysql 中的表时获取受影响的行

转载 作者:行者123 更新时间:2023-11-29 13:39:16 24 4
gpt4 key购买 nike

当使用以下命令更改表时,我需要检索受影响行的报告:

1.- 更换引擎:

ALTER TABLE <table> ENGINE=INNODB;

2.- 添加约束:

ALTER TABLE nombre_tabla ADD PRIMARY KEY símbolo_clave_foránea;
ALTER TABLE nombre_tabla DROP PRIMARY KEY símbolo_clave_foránea;

ALTER TABLE nombre_tabla ADD FOREIGN KEY símbolo_clave_foránea;
ALTER TABLE nombre_tabla DROP FOREIGN KEY símbolo_clave_foránea;

3.- 添加 UNIQUE 约束。

最佳答案

主键或唯一键失败是查找重复项,如果其中有空值,则需要先对它们进行排序。

例如给定MyTable(KeyField int not null)然后

Select KeyField From MyTable
inner join (Select KeyField,Count() as NumberOfTimes Group By KeyField) Duplicates
Where NumberOfTimes > 1

然后你就必须想出一些与他们有关的事情。删除或重新生成 key 。

外键只是一个外连接查询,其中键为空

例如给定 MyTable (KeyField int not null,ForeignKeyField int not null)MyLookUpTable(LookUpkey int not null, Description VarChar(32) not null) then

Select KeyField From MyTable 
Left Join MyLookUpTable On MyTable.LookUpField = MyLookUpTable.LookUpKey
Where MyTable.LookUpField Is Null

您必须再次决定如何处理它们。您可以删除它们,但这可能会有所帮助。一种方法是在查找表中插入“丢失”记录,获取其 key ,然后使用连接进行更新。所以假设 key 是 999

Update m
Set LookUpField = 999
From MyTable m
Left Join MyLookUpTable On m.LookUpField = MyLookUpTable.LookUpKey
Where m.LookUpField Is Null

现在您可以挖出 999 并在闲暇时处理它们。

关于mysql - 更改 mysql 中的表时获取受影响的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18320360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com