Informix创建带外键的表时报错(错误码201)求助
解决Informix CREATE TABLE的语法错误
嘿,我一眼就揪出问题所在了——你的外键引用语法不符合Informix的规范,这才触发了201号语法错误!
错误的核心问题
你写的外键部分没有用括号包裹父表的列名,Informix要求引用表列时必须用括号把列名括起来:
-- 错误写法 foranea_CI_usuario REFERENCES Usuarios CI, foranea_id_instituto REFERENCES Institutos id_instituto
修正后的完整SQL语句
我帮你调整了语法,还加了个重要提醒:记得给外键列指定和父表对应列一致的数据类型(下面我假设是INT,你要根据实际表结构修改):
CREATE TABLE relacion_Usuarios_pertenecen_Instituto ( foranea_CI_usuario INT REFERENCES Usuarios(CI), foranea_id_instituto INT REFERENCES Institutos(id_instituto), PRIMARY KEY (foranea_CI_usuario, foranea_id_instituto) );
进阶优化(可选)
如果想让约束更清晰、方便后续维护,也可以给外键单独命名:
CREATE TABLE relacion_Usuarios_pertenecen_Instituto ( foranea_CI_usuario INT, foranea_id_instituto INT, PRIMARY KEY (foranea_CI_usuario, foranea_id_instituto), CONSTRAINT fk_usuario_ci FOREIGN KEY (foranea_CI_usuario) REFERENCES Usuarios(CI), CONSTRAINT fk_instituto_id FOREIGN KEY (foranea_id_instituto) REFERENCES Institutos(id_instituto) );
内容的提问来源于stack exchange,提问作者Matias Barrios
相关产品推荐
相关产品推荐

