是否可以从schema.xml生成schema.sql,以便在所有create table之后添加外键约束?我想按字母顺序对schema.xml中的表进行排序,但是有些表具有将在以后创建的表的外键。
所以不是这个输出:
CREATE TABLE t (
id INT NOT NULL AUTO_INCREMENT,
u_id INT NOT NULL,
PRIMARY KEY(id),
INDEX (u_id),
FOREIGN KEY (u_id)
REFERENCES u(id)
) ENGINE=INNODB;
CREATE TABLE u (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
) ENGINE=INNODB;
我想得到这个:
CREATE TABLE t (
id INT NOT NULL AUTO_INCREMENT,
u_id INT NOT NULL,
PRIMARY KEY(id),
INDEX (u_id)
) ENGINE=INNODB;
CREATE TABLE u (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
) ENGINE=INNODB;
ALTER TABLE t
ADD FOREIGN KEY
u_id (u_id)
REFERENCES u (id);
答案 0 :(得分:0)
对于MySQL,Propel在生成的SQL的顶部插入以下语句来创建表:
SET FOREIGN_KEY_CHECKS = 0;
这意味着定义表的顺序不应该成为问题。你得到的错误是什么?