with query do begin Close; SQL.Clear; SQL.Add('CREATE INDEX IndexName ON TableName (Field1,Field2)'); Execsql; end; 不知道是不是这个意思。
我问的没这么复杂吧 是这样的我建了两个表/* Table STUDENT */ CREATE TABLE STUDENT ( ID CHAR(6) NOT NULL, NAME VARCHAR(20) NOT NULL, SEX CHAR(1) DEFAULT 'M' NOT NULL, CLASS CHAR(4), DEPARTMENT SMALLINT, BIRTHDAY TIMESTAMP, NATIVE_PLACE VARCHAR(50) ); /* PrimaryKey ID */ ALTER TABLE STUDENT ADD CONSTRAINT ID PRIMARY KEY (ID); *****************************/* Table CLASS */ CREATE TABLE CLASS ( ID CHAR(4) NOT NULL, NAME VARCHAR(50) NOT NULL, MONITOR CHAR(6), DEPARTMENT SMALLINT NOT NULL ); /* PrimaryKey CLASS_ID */ ALTER TABLE CLASS ADD CONSTRAINT CLASS_ID PRIMARY KEY (ID);**************************然后书上说: 外部关键字要在所有数据表(就这两个)的主关键字建立后才能创建。然后给出了: /* ForeignKey CLASS */ ALTER TABLE STUDENT ADD CONSTRAINT CLASS FOREIGN KEY(CLASS) REFERENCES CLASS; 现在就不知道该怎么操作了 把上面这小段外部关键字加哪??怎么加??楼上几位高手 没有明白我的问题 回答复杂了 不过很谢谢 分我照样会给的 我是个新手 急切希望得到答案 谢谢!!!
我这样作了啊 会弹出错误信息:Unsuccessful metadata update object CLASS is in use Statement: ALTER TABLE STUDENT ADD CONSTRAINT CLASS FOREIGN KEY(CLASS) REFERENCES CLASS怎么会事啊??
再次感谢 hamzsy(十二真空间) 和TOMWLD(笑天) 等等 的关注及无私帮助。根据你们说的“按我上面脚本的顺序,一步一步下来的,没有错误” 那就说明我操作上可能错误了。我的操作如下,能帮我看看,错在哪吗?? 谢谢。我在IBConsole的InterBase Servers里Register注册了一个Remote Server:InterBase.然后在DataBases里Register注册了一个数据库MYDATABASE.GDB我就在Table里创建了 STUDENT 和 CLASS 两个表:/* Table STUDENT */ CREATE TABLE STUDENT ( ID CHAR(6) NOT NULL, NAME VARCHAR(20) NOT NULL, SEX CHAR(1) DEFAULT 'M' NOT NULL, CLASS CHAR(4), DEPARTMENT SMALLINT, BIRTHDAY TIMESTAMP, NATIVE_PLACE VARCHAR(50) ); /* PrimaryKey ID */ ALTER TABLE STUDENT ADD CONSTRAINT ID PRIMARY KEY (ID); *****************************/* Table CLASS */ CREATE TABLE CLASS ( ID CHAR(4) NOT NULL, NAME VARCHAR(50) NOT NULL, MONITOR CHAR(6), DEPARTMENT SMALLINT NOT NULL ); /* PrimaryKey CLASS_ID */ ALTER TABLE CLASS ADD CONSTRAINT CLASS_ID PRIMARY KEY (ID); 以上我操作上都还正常 没有错误信息提示可是在上诉步骤完成后 当我在IBConsole--Tools--Interactive SQL--输入sql语句:/* ForeignKey CLASS */ ALTER TABLE STUDENT ADD CONSTRAINT CLASS FOREIGN KEY(CLASS) REFERENCES CLASS;按执行按钮(Execute Query)会弹出错误信息:Unsuccessful metadata update object CLASS is in use Statement: ALTER TABLE STUDENT ADD CONSTRAINT CLASS FOREIGN KEY(CLASS) REFERENCES CLASS 而我在SQL Explorer里 运行 则会弹出:General SQL error. Token unknown - line 7, char -1 ALTER 到底是哪错了??
在Studen表上右键--Extract,看一下你的表的MetaData中是否已经建有外键了,可能是你已经建好了外键 如果不是这样的话,试试下面的语句ALTER TABLE STUDENT ADD CONSTRAINT CLASS FOREIGN KEY (CLASS) REFERENCES CLASS (ID);
begin
Close;
SQL.Clear;
SQL.Add('CREATE INDEX IndexName ON TableName (Field1,Field2)');
Execsql;
end;
不知道是不是这个意思。
CREATE TABLE STUDENT (
ID CHAR(6) NOT NULL,
NAME VARCHAR(20) NOT NULL,
SEX CHAR(1) DEFAULT 'M' NOT NULL,
CLASS CHAR(4),
DEPARTMENT SMALLINT,
BIRTHDAY TIMESTAMP,
NATIVE_PLACE VARCHAR(50)
);
/* PrimaryKey ID */
ALTER TABLE STUDENT
ADD CONSTRAINT ID
PRIMARY KEY (ID);
*****************************/* Table CLASS */
CREATE TABLE CLASS (
ID CHAR(4) NOT NULL,
NAME VARCHAR(50) NOT NULL,
MONITOR CHAR(6),
DEPARTMENT SMALLINT NOT NULL
);
/* PrimaryKey CLASS_ID */
ALTER TABLE CLASS
ADD CONSTRAINT CLASS_ID
PRIMARY KEY (ID);**************************然后书上说:
外部关键字要在所有数据表(就这两个)的主关键字建立后才能创建。然后给出了:
/* ForeignKey CLASS */
ALTER TABLE STUDENT
ADD CONSTRAINT CLASS
FOREIGN KEY(CLASS)
REFERENCES CLASS;
现在就不知道该怎么操作了 把上面这小段外部关键字加哪??怎么加??楼上几位高手 没有明白我的问题 回答复杂了 不过很谢谢 分我照样会给的 我是个新手 急切希望得到答案 谢谢!!!
object CLASS is in use
Statement: ALTER TABLE STUDENT
ADD CONSTRAINT CLASS
FOREIGN KEY(CLASS)
REFERENCES CLASS怎么会事啊??
到www.51delphi.com去看看,可以下载IBEXPERT、QUICK DESK等
你用的是Interbase哪个版本?不过你的脚本没有任何特殊的语句应该都一样啊
CREATE TABLE STUDENT (
ID CHAR(6) NOT NULL,
NAME VARCHAR(20) NOT NULL,
SEX CHAR(1) DEFAULT 'M' NOT NULL,
CLASS CHAR(4),
DEPARTMENT SMALLINT,
BIRTHDAY TIMESTAMP,
NATIVE_PLACE VARCHAR(50)
);
/* PrimaryKey ID */
ALTER TABLE STUDENT
ADD CONSTRAINT ID
PRIMARY KEY (ID);
*****************************/* Table CLASS */
CREATE TABLE CLASS (
ID CHAR(4) NOT NULL,
NAME VARCHAR(50) NOT NULL,
MONITOR CHAR(6),
DEPARTMENT SMALLINT NOT NULL
);
/* PrimaryKey CLASS_ID */
ALTER TABLE CLASS
ADD CONSTRAINT CLASS_ID
PRIMARY KEY (ID);
以上我操作上都还正常 没有错误信息提示可是在上诉步骤完成后 当我在IBConsole--Tools--Interactive SQL--输入sql语句:/* ForeignKey CLASS */
ALTER TABLE STUDENT
ADD CONSTRAINT CLASS
FOREIGN KEY(CLASS)
REFERENCES CLASS;按执行按钮(Execute Query)会弹出错误信息:Unsuccessful metadata update
object CLASS is in use
Statement: ALTER TABLE STUDENT
ADD CONSTRAINT CLASS
FOREIGN KEY(CLASS)
REFERENCES CLASS
而我在SQL Explorer里 运行 则会弹出:General SQL error. Token unknown - line 7, char -1 ALTER
到底是哪错了??
如果不是这样的话,试试下面的语句ALTER TABLE STUDENT
ADD CONSTRAINT CLASS
FOREIGN KEY (CLASS) REFERENCES CLASS (ID);
这几天比较忙,不好意思不能及时回答你的问题
如果可以的话,把你的那个文件压缩后发给我,帮你看看问题在哪儿,不过可能不能及时给你,太忙了