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

MySQLでカスケードを更新するにはどうすればよいですか?

    カスケード外部キーを使用して、説明したことを実行するソリューションは次のとおりです。

    mysql> create table city (
      id int not null auto_increment, 
      name varchar(45), 
      active tinyint, 
      primary key (id),
      unique key (id, active));
    
    mysql> create table person (
      id int not null auto_increment, 
      city_id int,
      active tinyint, 
      primary key (id), 
      foreign key (city_id, active) references city (id, active) on update cascade);
    
    mysql> insert into city (name, active) values ('New York', 1);
    
    mysql> insert into person (city_id, active) values (1, 1);
    
    mysql> select * from person;
    +----+---------+--------+
    | id | city_id | active |
    +----+---------+--------+
    |  1 |       1 |      1 |
    +----+---------+--------+
    
    mysql> update city set active = 0 where id = 1;
    
    mysql> select * from person;
    +----+---------+--------+
    | id | city_id | active |
    +----+---------+--------+
    |  1 |       1 |      0 |
    +----+---------+--------+
    

    MySQL5.5.31でテスト済み。



    1. Instr()を使用してSQLiteの文字列内の文字の位置を取得する

    2. MySQLデータベースにデータを挿入するにはどうすればよいですか?

    3. phpを使用してすべてのリンク(a href)タグにrel属性を追加するにはどうすればよいですか?

    4. Mysql変数をHibernateで使用するにはどうすればよいですか?