Log in

View Full Version : สามารถ insert ข้อมูลลง 2 table แบบ join กันได้หรือเปล่าคะ



ar3s
28-04-2004, 02:43 PM
สามารถ insert ข้อมูลลง 2 table แบบ join กันได้หรือเปล่าคะ
insert into <table A>,<Table B> (field1,field2,field3) values ('value1','value2','value3');
คือว่าลองแล้ว มัน error น่ะคะ ไม่ทราบว่าสามารถเขียนแบบนี้ได้หรือเปล่า หรือว่า จะต้อง insert ไปทีละ table คะ ขอบคุณล่วงหน้าคะ

ar3s
28-04-2004, 02:44 PM
ไม่แน่ใจเท่าไรนักครับ แต่ถ้าเป็นผมผมจะ Insert ไปที่ละ Table ครับเนื่องจากจะมี Table ที่เป็น Master และ Detail. Master Table จะเก็บแค่ Record เดียวแต่ Detail Table จะเก็บอยู่หลาย Record แต่จะแยกกันด้วย Index ที่เรากำหนดขึ้นมา พอ Master Table มีการ Insert ข้อมูลเรียบร้อยแล้วเราก็ทำการปิดมันจะได้ไม่ต้องมีการยุ่งเกี่ยวกันอีก แต่ Detail Table จะมีการเปิดอยู่ตลอดเวลาจนทำการ Insert ข้อมูลเสร็จ และถ้าข้อมูลเกิดมีการเสียหายก็จะเป็นอยู่ที่ Detail Table เพียงอย่างเดียว

ar3s
28-04-2004, 02:44 PM
เป็นวิธีการที่ไม่ถูกต้องครับ เพราะถ้า Detail fail จะมีขยะที่ master วิธีที่ดีที่สุดคือ
ใช้ starttransaction ตั้งแต่เปิด ไม่ว่าจะ insert master หรือ detail ตราบใดที่ยังไม่ commit จะไม่มีผลกระทบกับ database

DB.starttransaction

insert master
insert detail

จะบันทึกข้อมูล
if DB.intransaction then
begin
try
DB.commit;
except
DB.rollback;
end;
end;

คุณ kkk ควรบอกจุดประสงค์ที่จะทำด้วย เพราะคุณบอกส่วนที่คุณติดปัญหา คนที่ตอบก็ไม่แน่ใจว่าตอบไปจะถูกมั้ย