gpt4 book ai didi

mysql - mysql alter 命令可能导致数据丢失?

转载 作者:行者123 更新时间:2023-11-29 00:54:36 25 4
gpt4 key购买 nike

虽然我不认为数据丢失是可能的,但我想仔细检查以下查询是否会导致数据丢失。我正在添加索引并增加 varchar 长度。

ALTER TABLE  `phppos_sales` ADD  `deleted` INT( 1 ) NOT NULL DEFAULT  '0';
ALTER TABLE `phppos_items` ADD INDEX ( `name` );
ALTER TABLE `phppos_items` ADD INDEX ( `category` );
ALTER TABLE `phppos_items` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_customers` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_employees` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_giftcards` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_item_kits` ADD INDEX ( `name` );
ALTER TABLE `phppos_people` ADD INDEX ( `first_name` );
ALTER TABLE `phppos_people` ADD INDEX ( `last_name` );
ALTER TABLE `phppos_people` ADD INDEX ( `email` );
ALTER TABLE `phppos_sales` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_suppliers` ADD INDEX ( `deleted` );
ALTER TABLE `phppos_receivings` CHANGE `payment_type` `payment_type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_receivings_items` CHANGE `description` `description` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_receivings_items` CHANGE `serialnumber` `serialnumber` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales` CHANGE `payment_type` `payment_type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales_suspended` CHANGE `payment_type` `payment_type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_giftcards` CHANGE `giftcard_number` `giftcard_number` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
ALTER TABLE `phppos_sales_items` CHANGE `description` `description` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales_items` CHANGE `serialnumber` `serialnumber` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales_suspended_items` CHANGE `description` `description` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales_suspended_items` CHANGE `serialnumber` `serialnumber` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
ALTER TABLE `phppos_sales_suspended_payments` CHANGE `payment_type` `payment_type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;
ALTER TABLE `phppos_sales_payments` CHANGE `payment_type` `payment_type` VARCHAR( 255 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL;

最佳答案

不管怎样,都应该对比一下手术前后的数据。

改变前做mysqldump --extended-insert=FALSE ... > old.sql,改变后做同样的> new.sql,然后diff -u old.sql new.sql |更少可以肯定。

extended-insert=FALSE 部分需要将每个表行放在单独的行上,以便于diff

关于mysql - mysql alter 命令可能导致数据丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6709143/

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