【急】DB2数据库修改某个字段的长度的语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【急】DB2数据库修改某个字段的长度的语句相关的知识,希望对你有一定的参考价值。

1)alter table tbl_t_txn alter column COLUMN_NAME varchar(1) not null;
2)ALTER TABLE tbl_t_txn ALTER COLUMN COLUMN_NAME SET DATA COLUMN_NAME VARCHAR ( 1) ;
这两种都报出现非法字符的错误

举例如下:

1:DB2 V9.7
CONNECT TO SAMPLE;
ALTER TABLE ADMINISTRATOR.TEST ALTER COLUMN B SET DATA TYPE VARCHAR ( 500 ) ;
CONNECT RESET;
其中B原来是VARCHAR(50),直接修改成功。

2:ALTER TABLE TABLENAME ALTER COLUMN_NAME SET DATA TYPE VARCHAR(200);

3:如果是db2 的表名:list tables
得到每一个表的详细信息字段名,字段属性(类型,文字长度,备注)
describe table 具体的表名

4:alter table tablename modify yourcolumn VARCHAR2(500);
参考技术A a.首先记住一个原则:一个 SQL 语句只能改变每列的一个属性(例如,类型或可空性)
b.你的错误在于:
1) varchar(1) 和 not null 一起写。
2)SET DATA TYPE VARCHAR (1)写成了 SET DATA COLUMN_NAME VARCHAR (1)
c. 所以:
1)alter table tbl_t_txn alter column COLUMN_NAME varchar(1) not null;
这句分开写:
alter table tbl_t_txn alter column COLUMN_NAME SET NOT NULL

alter table tbl_t_txn alter column COLUMN_NAME SET DATA TYPE varchar(1)
而:
2)ALTER TABLE tbl_t_txn ALTER COLUMN COLUMN_NAME SET DATA COLUMN_NAME VARCHAR ( 1) ;

写成:
2)ALTER TABLE tbl_t_txn ALTER COLUMN COLUMN_NAME SET DATA TYPE VARCHAR(1);
参考技术B ALTER TABLE tbl_t_txn ALTER COLUMN COLUMN_NAME SET DATA char VARCHAR ( 1) ;

这是第二个语句 ,你试试吧 看能执行不
参考技术C ALTER TABLE tbl_t_txn ALTER COLUMN COLUMN_NAME SET DATA TYPE VARCHAR ( 10);
试试这个。

MySQL语句中判断(字段值是不是为0)不是的话...

MySQL语句中判断(某字段值是否为0)不是的话就 WHERE 中添加条件 某字段值<time()
比如:错误语句,但是容易理解
$f_item_select = "SELECT * FROM `pre_common_block_item` WHERE bid=4 if(panduanziduan!=0) panduanziduan<time() end if ORDER BY displayorder ASC LIMIT 0,5;";

急急急,分数不是问题,可追加!
好心人,帮个忙

写入“select * from pre_common_block_item where bid = 4 and case when panduanziduan!=0 then panduanziduan<time() else 1 end order by displayorder ASC LIMIT 0,5”运行即可。

MySql的核心

MySql是一个快速、多线程、多用户的SQL数据库服务器,其出现虽然只有短短的数年时间,但凭借着“开放源代码”的东风,它从众多的数据库中脱颖而出,成为PHP的首选数据库。除了因为几乎是免费的这点之外,支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等都是PHP选择MySql的主要原因。

MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。 

MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证。

参考技术A 写个存储过程判断下
if panduanziduan != 0 then
sql语句
end if;
if panduanziduan = 0 then
sql语句
end if;追问

panduanziduan 是数据中的字段... 你这样的方法就要查询数据然后在来

追答

嗯 先查询出来这个字段再判断 判断里面重新写查询语句

追问

就是闲麻烦才不用这方法的,不过还是谢谢你

参考技术B select * from pre_common_block_item where bid = 4 and case when panduanziduan!=0 then panduanziduan<time() else 1 end order by displayorder ASC LIMIT 0,5追问

我试了,不行纳,不知道是不是我写错

追答

语法上,这句话应该不会报错,我测试过的,
不知道panduanziduan<time() 这个条件会怎样。

本回答被提问者采纳
参考技术C 用case when 嵌套吧。

以上是关于【急】DB2数据库修改某个字段的长度的语句的主要内容,如果未能解决你的问题,请参考以下文章

求vfp中修改字段长度语句

db2 怎么在所有表查询某个字段的信息

常见DB2 sql错误码积累

DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null

sql语句如何修改字段长度

DB2字段数据类型(常用)