主要问题以及解决办法是:
1,MySQL支持外键约束,并提供与其它DB相同的功能,但表(外键表和外键主表)类型必须为 InnoDB,外键表和外键主表的类型都要是innoDB
建表约束语句:
user表:
1
2
3
4
5
6
<code>CREATE</code> <code>TABLE</code> <code>`usert` (</code>
<code> </code><code>`id` </code><code>int</code><code>(11) </code><code>NOT</code> <code>NULL</code> <code>AUTO_INCREMENT,</code>
<code> </code><code>`</code><code>password</code><code>` </code><code>varchar</code><code>(255) </code><code>COLLATE</code> <code>utf8_unicode_ci </code><code>DEFAULT</code> <code>NULL</code><code>,</code>
<code> </code><code>`userName` </code><code>varchar</code><code>(255) </code><code>COLLATE</code> <code>utf8_unicode_ci </code><code>DEFAULT</code> <code>NULL</code><code>,</code>
<code> </code><code>PRIMARY</code> <code>KEY</code> <code>(`id`)</code>
<code>) ENGINE=InnoDB</code>
bill新表中有一个外键约束 tb_bill_fk指向 user表中的id :
<code>CREATE</code> <code>TABLE</code> <code>bill (</code>
<code> </code><code>id </code><code>INT</code> <code>PRIMARY</code> <code>KEY</code> <code>NOT</code> <code>NULL</code> <code>AUTO_INCREMENT,</code>
<code> </code><code>user_id </code><code>INT</code><code>,</code>
<code> </code><code>CONSTRAINT</code> <code>FOREIGN</code> <code>KEY</code> <code>tb_bill_fk (user_id) </code><code>REFERENCES</code> <code>usert(id)</code>
<code>) ENGINE=INNODB</code>