使用Netbeans在Java中编辑数据库结构字段名称和字段限制

时间:2013-02-18 06:33:37

标签: database netbeans derby

我很抱歉这个虚假的问题。

我有这样的数据库结构:

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)我收到错误。

提前谢谢。

2 个答案:

答案 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)而不是值范围,以防您不了解这一事实。