开发者社区> 问答> 正文

db2:alter table T_ORG alter column ORG_NAME set no

如题: 测试代码: public void testSetSchema(){ DB2StatementParser parser = new DB2StatementParser( "alter table T_ORG alter column ORG_NAME set not null"); List statementList = parser.parseStatementList(); System.out.println(statementList.get(0).toString()); } 错误信息: com.alibaba.druid.sql.parser.ParserException: TODO pos 47, line 1, column 44, token NOT at com.alibaba.druid.sql.parser.SQLStatementParser.parseAlter(SQLStatementParser.java:1233) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:191) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:72) at com.alibaba.druid.SqlParserTest.testSetSchema(SqlParserTest.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:252) at junit.framework.TestSuite.run(TestSuite.java:247) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

原提问者GitHub用户xuanang

展开
收起
山海行 2023-07-05 20:19:52 43 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在DB2数据库中,您可以使用ALTER TABLE语句来修改表的结构。如果您要修改表中的列定义,可以使用以下语法:

    sql
    Copy
    ALTER TABLE table_name ALTER COLUMN column_name { SET DATA TYPE data_type | SET NOT NULL | DROP NOT NULL | SET DEFAULT default_value | DROP DEFAULT }
    其中,table_name是要修改的表的名称,column_name是要修改的列的名称,data_type是要设置的新数据类型,default_value是要设置的新默认值。

    如果您要将DB2表中的列定义更改为不允许为空,可以使用以下语法:

    sql
    Copy
    ALTER TABLE T_ORG ALTER COLUMN ORG_NAME SET NOT NULL;
    如果您要将DB2表中的列定义更改为允许为空,可以使用以下语法:

    sql
    Copy
    ALTER TABLE T_ORG ALTER COLUMN ORG_NAME DROP NOT NULL;

    2023-07-30 14:35:18
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 11:22:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载