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

# 1442 - Không thể cập nhật bảng '*' trong hàm / trình kích hoạt được lưu trữ vì nó đã được sử dụng bởi câu lệnh gọi hàm / trình kích hoạt được lưu trữ này

Nó sẽ không cho phép bạn cập nhật bảng vì nó đã được đọc bởi INSERT INTO.. SELECT truy vấn gọi trình kích hoạt này.

Một cách thay thế sẽ là tắt trình kích hoạt và cập nhật bảng người dùng một cách riêng biệt, ví dụ:

INSERT INTO signed (time_of_start, player)
SELECT time_of_game_id, users.user_id FROM time_of_game, users
WHERE time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";

UPDATE users join time_of_game SET users.credit = users.credit-1
where time_of_game.time_of_start="2017-02-01 12:00:00"
AND users.steamid="1234567890123456";

Bạn có thể thêm cột tham gia với ON nếu có bất kỳ cột nào liên kết hai bảng này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn nhiều hàng trong mysql

  2. MySQL - tạo chế độ xem bằng cách sử dụng truy vấn con trong mệnh đề FROM

  3. Độ phức tạp về thời gian của việc sắp xếp cơ sở dữ liệu

  4. Tạo kết hợp bảng / cột bằng cách sử dụng SQL Query hoặc Laravel SQL Query Builder

  5. # 1221 - Sử dụng không chính xác UPDATE và ORDER BY