创建表的时候:
create table table_name
(
id serial, // ---自增,item---
username char(20) not null, //---非空---
nation char(20) default 'China' //---默认值---
)
修改表的时候:
添加:
alter table table_name add(column_name char(120) default '默认值')
修改:
alter table table_name modify(old_name char(120) default '默认值')
我用的是informix数据库,不过整体上是相同的。你可以尝试一下,或者告诉我你用的是什麽数据库,我再帮你解决。
----------------------正义的分割线----------------------
发现你的问题了,你在修改表结构的时候,要求这个栏位不为空,可是你并没有给表的这个栏位赋值,这个效果就貌似"又要马儿跑,又不给草吃"。其实你只要一开始就给这个栏位赋一个默认值就可以了,如果这个栏位的值为空了,数据库就会给这个栏位赋值为默认值,不会出现真正的为空情况。
你尝试下下面的语句:
alter table [table名] add/modify columnname datatype default(defaultvalue)
建表的话,不用这么麻烦吧,还用sql来建表;
推荐你是用Erwin,图形化数据库设计工具,可以自动生成表,修改也方便,设置索引,默认值都很很简单的,完全是图形化的,不用写一行代码;
当然,会写SQL,也是必要的,虽然工作中很少用到这些建表语句;
是什么SQL?
如果是MYSQL的话,不能用INT,要用NUMBER
还有报错报的什么。自己看下报错就知道了
虽然不精通SQL,不过你的命令也写得太……不规范了。
1.ALTER TABLE aaww ADD field77 int NULL(只去掉了null,SQL Server不能添加非空的字段,因为添进去了,如果这个表已有数据,这个字段又没赋值,则约束不完整)
2.alter table aaww
add constraint DF_field77 default(77) for field77(77为默认值)
ALTER TABLE aaww ADD field77 int NOT NULL
在SQL2000中应该可以添加啊
数据库是否对了`
建一个有默认值的字段:
atler constraint 约束名 default('值') for 字段