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

Cách lặp qua tất cả các bảng trên cơ sở dữ liệu để cập nhật các cột

Một tùy chọn dễ dàng sẽ là tạo một truy vấn tạo ra UPDATE câu lệnh bạn muốn chạy trên tất cả các bảng:

SELECT CONCAT('UPDATE ', a.table_name, ' SET date = "2016-04-20" WHERE name = "Example";')
FROM information_schema.tables a
WHERE a.table_schema = 'YourDBNameHere'

Bạn có thể sao chép kết quả từ truy vấn này, dán vào trình chỉnh sửa truy vấn và chạy nó.

Cập nhật:

Như @PaulSpiegel đã chỉ ra, giải pháp trên có thể bất tiện nếu người ta đang sử dụng trình chỉnh sửa như HeidiSQL, vì nó sẽ yêu cầu sao chép thủ công từng bản ghi trong tập kết quả. Sử dụng thủ thuật bằng GROUP_CONCAT() sẽ cung cấp một chuỗi đơn chứa mọi UPDATE mong muốn truy vấn trong đó:

SELECT GROUP_CONCAT(t.query SEPARATOR '; ')
FROM
(
    SELECT CONCAT('UPDATE ', a.table_name,
                  ' SET date = "2016-04-20" WHERE name = "Example";') AS query,
        '1' AS id
    FROM information_schema.tables a
    WHERE a.table_schema = 'YourDBNameHere'
) t
GROUP BY t.id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách thay đổi cột api_token trong bảo vệ mã thông báo

  2. Định nghĩa lược đồ của DBMS

  3. Nhập dữ liệu từ Excel trong PHP

  4. Thuật toán tìm kiếm các mục liên quan dựa trên các thẻ phổ biến

  5. Viết tiếng Do Thái sang mySql bằng JAVA