2012-03-10 39 views
5

Có thể chèn vào hai bảng cùng lúc không? Tôi cần phải chèn một số dữ liệu vào một bảng (contactinformation) và sau đó dựa trên khóa chính chèn vào một người dùng ổn định và có khóa chính được đặt làm một trường (khóa ngoài). Điều này có thể không?Chèn vào hai bảng

Cảm ơn

+0

Bạn có thể cần phải thực hiện thao tác chèn trên cả hai bảng lần lượt. – Lion

Trả lời

2

Bạn có thể viết quy trình cho việc này.

DELIMITER // 

CREATE PROCEDURE `proc1` (contactinformation colums... usertable columns...) 
BEGIN 
    INSERT INTO contactinformation values(contactinformation colums ...); 
    INSERT INTO usertable values(LAST_INSERT_ID(), contactinformation colums ...); 
END// 

DELIMITER ; 

contactinformation colums... nghĩa là định nghĩa cột của bảng contactinformation.
usertable columns... nghĩa là các định nghĩa cột của bảng có thể sử dụng được.

Sau lần chèn đầu tiên, bạn có thể lấy id chèn nếu bảng contactinformation có bất kỳ cột tự động nào. Sau đó, sử dụng khóa đó trong câu lệnh chèn thứ hai.

+0

đây có phải là thủ tục được lưu trữ hoặc trình kích hoạt không? – Biscuit128

+0

Thủ tục được lưu trữ của nó. Xem có 'TẠO THỦ TỤC TẠO '. Bạn có thể cho chúng tôi lược đồ 'có thể sử dụng' và' contactinformation' được không? Sau đó, tôi sẽ hiểu rõ hơn và thay đổi thủ tục của tôi cho phù hợp –

0

Bạn có thể tạo một kích hoạt trên table1 để chèn các giá trị như nhau trên table2.

2

Bạn có thể chèn vào Chế độ xem có thể cập nhật hoặc có thể chèn có thể tham chiếu hai bảng khác nhau với JOIN, xem tài liệu here.

Các vấn đề liên quan