데이터베이스의 일부인 테이블에서 열의 데이터 형식을 변경하는 스크립트를 아는 사람이 있습니까? 예 :열 데이터 형식을 수정하는 Sql 스크립트
동일한 열이있는 20 개의 서로 다른 데이터베이스에 사용자 테이블이 있습니다. 해당 테이블에서 열 중 하나의 데이터 유형을 변경하려고합니다.
데이터베이스의 일부인 테이블에서 열의 데이터 형식을 변경하는 스크립트를 아는 사람이 있습니까? 예 :열 데이터 형식을 수정하는 Sql 스크립트
동일한 열이있는 20 개의 서로 다른 데이터베이스에 사용자 테이블이 있습니다. 해당 테이블에서 열 중 하나의 데이터 유형을 변경하려고합니다.
information_schema를 사용하여 DDL 명령을 생성하여 열을 수정할 수 있습니다.
예를 들어 모든 테이블의 이름이 "user"이고 다른 데이터베이스에 변경하지 않으려는 사용자 테이블이없는 경우 열의 이름이 "change_me"이고 원하는 테이블이 그것을 결코 null의 부호없는 INT를 만들기 위해, 당신이 뭔가를 할 수 있습니다 :
이select concat('ALTER TABLE ',table_schema,
'.',table_name,
' MODIFY COLUMN ',column_name,
' INT UNSIGNED NOT NULL;') as sql_stmt
into outfile '/tmp/modify_columns.sql'
from information_schema.columns
where table_name = 'user'
and column_name = 'change_me';
\. /tmp/modify_columns.sql
은 또한 여러 번, 열이 데이터 유형을 변경 비어 있어야하고 DBMS에 따라 달라집니다 기억. 을 및 부터까지 지정하십시오. 대안 :
desc foo;
Name Null Type
------------------------------ -------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BAR1 NUMBER
-- this will not work:
alter table foo modify (bar1 varchar(255));
--instead
alter table foo add (bar2 varchar(255));
-- assume the DB will auto change type:
update foo set bar2=bar1;
alter table foo drop (bar1);
alter table foo rename column bar2 to bar1;