这样的动态SQL怎么执行?

IamDinosaur 2005-06-16 10:39:28
开发项目,需要一次性执行.sql文件中的语句,遇到如下.sql文件:
create table tabA
( col1 char(10),
col2 char(10),
primary key(col1) constraint pk_taba
);
create table tabB
(
col1 char(10),
colA char(10),
colB char(10),

foreign key(col1) references tabA(col1) constraint fk_tabB_tabA

);

在dbaccess中用sql->load->run可以正确运行,但在FGL中,用读入该文件内容到一字符串中,PREPARE时就出错,提示“外键约束被引用的表不存在!”。如果用“WHENEVER ERROR CONTINUE”,到EXECUTE时就报“语句未准备”的错误。
怎么办?难道这样的语句一定要分两次PREPARE、EXECUTE吗?
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyInInternet 2005-07-04
  • 打赏
  • 举报
回复
大概还是要分两次prepare的。因为如果一起prepare,系统会检查这两条语句有无语法错误,看到第二句对tabA的引用,而tabA还没有建,当然报错。
如果把这两个建表语句放在sql editor中一起检查语法,肯定报你说得那个错误。
wenlq 2005-06-30
  • 打赏
  • 举报
回复
先建tabA ,再建 tabB
IamDinosaur 2005-06-25
  • 打赏
  • 举报
回复
怎么没人回答?这不是中国最大的开发者网络吗?

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧