天天看點

錯誤代碼: 1005 Can't create table 'hibernate.bill' (errno: 150)

主要問題以及解決辦法是:

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>

繼續閱讀