alter table 表名 alter column 字段名 变更后的字段类型。
注意:
但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。
例如:
现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型 cha_field1,实际为CHAR(10),默认值为dboD_field1现要求将字段类型改为 varchar(20),默认值去除错误提示如下:
服务器: 消息 5074,级别 16,状态 1,行 1
对象 'D_field1' 依赖于 列 'field1'。
服务器: 消息 5074,级别 16,状态 1,行 1
对象 'PK_field1' 依赖于 列 'field1'。
服务器: 消息 4922,级别 16,状态 1,行 1
ALTER TABLE ALTER COLUMN field1 失败,因为有一个或多个对象访问此列。
你的SQL语句 alter table pet alter column sex enum("m","f"); 错了 正确的是: alter table pet change `sex` `sex` enum('m','f') not null default 'm'; 另外最好先保证你的pet表中现在sex字段的值都在m,f以内
ALTER TABLE tableCdrop CONSTRAINT TypeName上的约束名字goALTER TABLE tableCALTER COLUMN TypeName TypeName7goALTER TABLE tableCALTER COLUMN TypeName7 VARCHAR(10)
首先你这个B数据库要修改的列必须没有数据才可以更改数据类型。如果你的这个列类型是不能为空的话,就要把它修改为可以为空。如果你用批量pl/sql 、toad等工具的话都比较方便,可以不用命令就能够更改了。
sql命令的话就是: alter table table_name modify 字段 varchar(12); --varchar(12)是你自己定义的,可以是date、number、long等类型。
其他的一些语句:
/修改原字段名/
ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;
/添加一个和原字段同名的字段/
ALTER TABLE 表名 ADD 字段名 VARCHAR2(30);
/将原来的数据更新到新字段中这是要注意,一定要显示进行数据类型转换(不同于MSSQL)/
UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
/删除原来的备份字段/
ALTER TABLE 表名 DROP COLUMN 字段名1;
mysql数据库中sql修改字段类型可以按照以下方式:
语法规则:alter table 表名 modify 字段名 新类型
例如,有张表student,有id字段是int型的,改为varchar类型
alter table student modify id varchar(20);
执行该sql语句即可。
注意:如将varchar类型转成int类型,原字段必须是数字,
而且int的最大值是4294967295,原字段的值需要小于等于int的最大值才可以。
这个不知道是不是符合你的意思
use 数据库名
go
declare @tname varchar(50),@tnum int,@cname varchar(50)
set @tnum=(select count(1) from information_schemacolumns where data_type=‘timestamp’)
while @tnum>0
begin
select top 1 @tname=table_name,@cname=column_name from information_schemacolumns where data_type=‘timestamp’ order by table_name
print @tname+' '+@cname
exec ('alter table '+@tname+' alter column '+@cname+' binary(8)')
set @tnum=@tnum-1
end
以上就是关于SQL语句如何更改表中的字段类型全部的内容,包括:SQL语句如何更改表中的字段类型、mysql数据库表修改某一列的类型、如何修改数据库表的字段和字段的字段类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)