我很抱歉这个虚假的问题。
我有这样的数据库结构:
CREATE TABLE "CLIENT" (
"AFM" INTEGER not null primary key,
"FIRSTNAME" VARCHAR(30),
"LASTNAME" VARCHAR(30),
"ADDRESS" VARCHAR(30),
"PHONE" INTEGER,
"MAIL" VARCHAR(60)
);
问题:
1)当我按下Netbeans上的“运行SQL”按钮时,会创建数据库。如果我编辑e字段,例如字段“邮件”到“电子邮件”,我再次按下相同的按钮,但我得到一个错误,因为数据库已经存在。如何编辑数据库中的字段名称?
2)如上所示,我希望字段“LASTNAME”由< 30个字符组成。如果我想要相同的字段:“AFM”INTEGER?如果我写:“AFM”INTEGER(10)我收到错误。
提前谢谢。
答案 0 :(得分:2)
为了限制数字列的值,您需要使用检查约束:
CREATE TABLE CLIENT
(
AFM INTEGER not null primary key,
FIRSTNAME VARCHAR(30),
LASTNAME VARCHAR(30),
ADDRESS VARCHAR(30),
PHONE INTEGER,
MAIL VARCHAR(60),
constraint check_afm check (afm <= 10)
);
虽然我没有看到你可以限制主键列值的原因。
如果该表已存在,则会出现错误。如果您还没有表中的数据(或者您不介意丢失它),您可以使用以下命令删除它:
drop table client;
运行上面的CREATE TABLE。
否则(如果要保留数据)需要alter table语句:
alter table client
add constraint check_afm check (afm <= 10);
请注意,如果表中的任何行违反了该检查约束,则会失败。
答案 1 :(得分:0)
1)您无法两次创建表格。如果该表已存在,则需要使用“alter table”来更改字段名。
2)你得到了哪个错误?作为旁注:Integer(n)定义显示宽度(参见here)而不是值范围,以防您不了解这一事实。