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

MySQL-削除時の外部キーがnull以外のフィールドにnullを設定

    ON DELETE SET NULLを設定した場合 外部キーに変更すると、フィールドをNOT NULLとして設定できなくなります。 。

    したがって、列がNOT NULLのテーブルを作成または変更することはできません。 およびON DELETE SET NULL CountryId

    以下のステートメントを実行すると:

    CREATE TABLE `country` (
      `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(100) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ;
    
    CREATE TABLE `city` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `name` varchar(100) NOT NULL,
      `countryId` int(10) unsigned DEFAULT NOT NULL,
      PRIMARY KEY (`id`),
      KEY `FK_country` (`countryId`),
      CONSTRAINT `FK_country` FOREIGN KEY (`countryId`) REFERENCES `country` (`id`) ON DELETE SET NULL ON UPDATE SET NULL
    );
    

    そして、MySQL 5.5でエラーが発生しました は:

    Schema Creation Failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
      PRIMARY KEY (`id`),
      KEY `FK_country` (`countryId`),
      CONSTRAINT `' at line 4: 
    



    1. テーブルからすべての列に加えて、ROWNUMなどの追加の列を選択するにはどうすればよいですか?

    2. Mysql:DBを現地時間からUTCに変換

    3. MySQLのCONCATでGROUP_CONCATを使用する方法

    4. 2つの外部キー、laravelの雄弁なマッピング方法