sql >> データベース >  >> RDS >> Mysql

MySQL:FKエラーのあるテーブルの作成(errno 150)

    外部キーのフィールドのタイプは、それらが参照している列のタイプと同じである必要があります。次の(スニッピング)があります:

    CREATE  TABLE IF NOT EXISTS `state` (
      `state_id` INT NOT NULL AUTO_INCREMENT ,
    ...
    CREATE  TABLE IF NOT EXISTS `brand` (
      `brand_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
    ...
    CREATE  TABLE IF NOT EXISTS `location` (
    ...
      `state_id` TINYINT UNSIGNED NULL DEFAULT NULL ,
    ...
      `brand_id` TINYINT UNSIGNED NOT NULL ,
    

    したがって、INTを参照しようとしています フィールド(テーブル内のstate およびbrand )with TINYINT テーブルlocationのフィールド 。それが不平を言っているエラーだと思います。そもそもどうやってそれが起こったのか、なぜFOREIGN_KEY_CHECKSをゼロにするのかわからない MySQLがエラーを診断するのを止めませんが、このタイプの不一致を修正するとどうなりますか?



    1. HAVING句を使用した遅いクエリ-高速化できますか?

    2. mysql_connectを使用してipage.comホスティングのデータベースに接続できませんか?

    3. グループで最大行を取得していますか?

    4. MySql Insert(存在しない場合は2列のペア)、存在しない場合は更新