Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để cập nhật trên tầng trong MySQL?

Đây là một giải pháp sử dụng các khóa ngoại xếp tầng để thực hiện những gì bạn mô tả:

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

Đã thử nghiệm trên 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. Sự khác biệt về MySQL giữa hai hàng của một Câu lệnh SELECT

  2. Chỉ tự động kết nối với PDO nếu cần

  3. Tạo một ứng dụng Ruby on Rails mới bằng MySQL thay vì SQLite

  4. Truy vấn con MySQL - Chỉ tìm bản ghi đầu tiên trong THAM GIA TRÁI

  5. Làm cách nào để kiểm tra xem PHP đã được kết nối với cơ sở dữ liệu chưa?