gpt4 book ai didi

mysql - 迁移主键以使用 AUTO_Increment

转载 作者:行者123 更新时间:2023-11-29 01:30:40 24 4
gpt4 key购买 nike

我有一个主键是 sale_id, payment_type 的表

mysql> describe phppos_sales_payments;
+----------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------+------+-----+---------+-------+
| sale_id | int(10) | NO | PRI | NULL | |
| payment_type | varchar(255) | NO | PRI | NULL | |
| payment_amount | decimal(15,2) | NO | | NULL | |
+----------------+---------------+------+-----+---------+-------+

我想添加一个自动递增的新字段id。这样做的原因是我想单独跟踪同一类型的付款。是否可以在不丢失数据的情况下执行此操作?

最佳答案

这是你可以改变你的表格的方式

ALTER TABLE `phppos_sales_payments`
-- add a unique index based on the current primary key
ADD UNIQUE (`sale_id`,`payment_type`),
-- drop the current primary key
DROP PRIMARY KEY,
-- add the new identity column with autoincrement
ADD COLUMN `id` int(10) NOT NULL AUTO_INCREMENT FIRST,
-- set primary key to the new identity column
ADD PRIMARY KEY (`id`);

“魔法”是添加一个唯一索引,因为外键必须有一个索引,其次添加具有自动增量的新标识列,并一次性为该列设置主键。

SQL Fiddle DEMO

关于mysql - 迁移主键以使用 AUTO_Increment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200911/

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