SQL用法小集 SQLOracleCC++C#
程序员文章站
2022-05-29 12:41:22
...
1.更改table schema的字段类型/长度
ALTER TABLE table_name MODIFY column datatype;
eg(Oracle):
ALTER TABLE R_GLS_GLSX MODIFY grade_chip varchar2(80);
2.新增表的栏位(一句sql只能新增一个栏位,如一表需增多个栏位,需要多句sql)
2.1)ALTER TABLE table_name ADD column datatype;
eg(Oracle):
ALTER TABLE R_GLS_LOCA ADD approver varchar2(20);
2.2) ALTER TABLE table_name ADD column datatype DEFAULT;
eg(Oracle):
ALTER TABLE R_SMS_STKI ADD ito_rear char(1) DEFAULT 'N';
ALTER TABLE R_SMS_STKI ADD recycle_flag char(1) DEFAULT 'N';
3.更改表的栏位的名称
ALTER TABLE table_name RENAME COLUMN old_column_name TO old_column_name;
eg(Oracle):
ALTER TABLE m_gls_prdt RENAME COLUMN chip_pos_id TO chp_pos_id;
4.修改某表的key值--首先drop旧有key值约束,确保为key值的栏位NOT NULL,然后再使用新增key值的方式达到最终修改key值的目的。(没有找到可以直接update的方法,此处使用的迂回策略)
例如,Table:C_EQP_LPST 之前是以line为key,需求改变要求以line+floor组合为key。而floor目前是一个允许空值的栏位,所以完整的sql如下:
ALTER TABLE C_EQP_LPST MODIFY floor NOT NULL;
ALTER TABLE C_EQP_LPST DROP CONSTRAINT PK_C_EQP_LPST;
ALTER TABLE C_EQP_LPST ADD CONSTRAINT PK_C_EQP_LPST PRIMARY KEY (line_id,floor) USING INDEX TABLESPACE conf_i;
ALTER TABLE table_name MODIFY column datatype;
eg(Oracle):
ALTER TABLE R_GLS_GLSX MODIFY grade_chip varchar2(80);
2.新增表的栏位(一句sql只能新增一个栏位,如一表需增多个栏位,需要多句sql)
2.1)ALTER TABLE table_name ADD column datatype;
eg(Oracle):
ALTER TABLE R_GLS_LOCA ADD approver varchar2(20);
2.2) ALTER TABLE table_name ADD column datatype DEFAULT;
eg(Oracle):
ALTER TABLE R_SMS_STKI ADD ito_rear char(1) DEFAULT 'N';
ALTER TABLE R_SMS_STKI ADD recycle_flag char(1) DEFAULT 'N';
3.更改表的栏位的名称
ALTER TABLE table_name RENAME COLUMN old_column_name TO old_column_name;
eg(Oracle):
ALTER TABLE m_gls_prdt RENAME COLUMN chip_pos_id TO chp_pos_id;
4.修改某表的key值--首先drop旧有key值约束,确保为key值的栏位NOT NULL,然后再使用新增key值的方式达到最终修改key值的目的。(没有找到可以直接update的方法,此处使用的迂回策略)
例如,Table:C_EQP_LPST 之前是以line为key,需求改变要求以line+floor组合为key。而floor目前是一个允许空值的栏位,所以完整的sql如下:
ALTER TABLE C_EQP_LPST MODIFY floor NOT NULL;
ALTER TABLE C_EQP_LPST DROP CONSTRAINT PK_C_EQP_LPST;
ALTER TABLE C_EQP_LPST ADD CONSTRAINT PK_C_EQP_LPST PRIMARY KEY (line_id,floor) USING INDEX TABLESPACE conf_i;