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

MySql-Sequalize-外部キー制約を追加できません

    順序を変更する必要があります。あなたはwheelを作成しています shopを作成する前のテーブル テーブル。ただし、wheelは、元のクエリセットに存在しないショップテーブルを指します。注文を変更すると、ショップテーブルがすでに存在するため、エラーは発生しません。

    CREATE TABLE IF NOT EXISTS `shop` 
     (`id` VARCHAR(255) NOT NULL , `accessToken` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, 
     PRIMARY KEY (`id`)) ENGINE=InnoDB;
    
    
    CREATE TABLE IF NOT EXISTS `wheel` 
    (`id` INTEGER NOT NULL auto_increment , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `shopId` VARCHAR(255), 
     PRIMARY KEY (`id`), 
     FOREIGN KEY (`shopId`) REFERENCES `shop` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
    
    CREATE TABLE IF NOT EXISTS `segments` 
    (`segmentID` VARCHAR(255) NOT NULL , `heading` VARCHAR(255) NOT NULL, `subHeading` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `wheelId` INTEGER, 
     PRIMARY KEY (`segmentID`),
     FOREIGN KEY (`wheelId`) REFERENCES `wheel` (`id`) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=InnoDB;
    


    1. 文字列/varcharをMySQLテーブル間で日付に変換する

    2. FROM_UNIXTIMEからの負の値の変換

    3. SQLダイアレクトが構成されていません(Phpstorm)

    4. 主キーを作成してインデックスを作成することに何か利点はありますか?