2012-03-10 18 views
5

İki tabloya aynı anda eklenebilir mi? Bir tabloya (iletişim bilgileri) bazı verileri eklemem ve daha sonra birincil anahtarın bir kullanıcı tablosuna girmesini ve birincil anahtarın bir alan (yabancı anahtar) olarak ayarlanmasını istiyorum. Mümkün mü?İki tabloya ekle

Teşekkür

+0

Ekleme işlemini her iki tabloda da sırayla yapmanız gerekebilir. – Lion

cevap

2

Bunun için bir prosedür yazabilirsiniz.

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

İletişim Bilgileri tablosunun sütun tanımları anlamına gelir.
usertable columns..., kullanıcı tablosu tablosunun sütun tanımları anlamına gelir.

İlk ekleme işleminden sonra, contactinformation tablosunda herhangi bir otomatik sütun varsa, ekleme kimliğini alabilirsiniz. Sonra bu anahtarı ikinci ekleme ifadesinde kullanın.

+0

bu bir saklı yordam mı, yoksa tetikleyici mi? – Biscuit128

+0

Saklı yordamı. Orada 'CREATE PROSEDÜR' var. Bize 'usertable' ve 'contactinformation' şemasını verebilir misiniz? Sonra daha iyi anlayacağım ve prosedürü buna göre değiştireceğim –

0

Sen table2 üzerinde aynı değerleri eklemek için table1 bir tetikleyici oluşturabilirsiniz.

2

İki farklı tabloya JOIN ile başvurabileceğiniz bir Güncellenebilir veya Eklenebilir Görünüm ekleyebilir, here belgelerine göz atabilirsiniz.

İlgili konular