Mysql
 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 |
+----+---------+--------+

Тествано на MySQL 5.5.31.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да експортирате данни от SQL Server 2005 в MySQL

  2. Как да извлека месец и година в MySQL дата и да ги сравня?

  3. Архивиране на таблица с колона GEOMETRY с помощта на mysqldump?

  4. Намерете празнини в датата с mysql

  5. Как да качвате и изтегляте файлове PHP и MySQL