本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7441392.html?templateId=171...
概述
分布式中LSC表不支持修改字段,本文通过间接的方案快速实现LSC表字段的修改。
LSC表修改列方案
假如原表如下,将字段area_name长度由VARCHAR2(60)修改为VARCHAR2(100)
CREATE TABLE area
(area_no CHAR(2) NOT NULL PRIMARY KEY,
area_name VARCHAR2(60),
DHQ VARCHAR2(20) DEFAULT 'ShenZhen' NOT NULL);
修改步骤如下
-- 注:以下SQL需在yasql命令行下执行
-- step1:将原表备份
ALTER TABLE area RENAME TO area_bak;
-- step2:统计备份表记录数
SELECT COUNT(*) FROM area_bak;
-- step3:重建表,将字段area_name长度由VARCHAR2(60)修改为VARCHAR2(100)
CREATE TABLE area
(area_no CHAR(2) NOT NULL PRIMARY KEY,
area_name VARCHAR2(100),
DHQ VARCHAR2(20) DEFAULT 'ShenZhen' NOT NULL);
-- step4:将备份表数据通过bulkload冷数据方式快速导入新表
SET AUTOCOMMIT OFF;
INSERT /*+ bulkload */ INTO area select * from area_bak;
COMMIT;
-- step5:统计新记录数
SELECT COUNT(*) FROM area;
-- step6:确保新表记录数没问题,删除备份表
DROP TABLE area_bak;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。