Truy vấn chỉ định cùng một ID cho hàng đang được đưa vào nếu nó nó đã tồn tại trong bảng


0 Phiếu
Đã hỏi 25/5/2016 bởi Erq_Bolk (100 điểm)
Tôi đang chèn bản ghi khách hàng vào một table ở đâu, nếu một bản ghi có cùng tên đã tồn tại, tôi chỉ định cùng một ID kỷ lục mới được chèn vào. Giả sử table T đã có hồ sơ này:
ID | Name | Phone_Number | Date_Inserted
105| Sam  | 111111       | 04/03/2014
106| Rita | 222222       |04/03/2014
và tôi đang chèn này từ table A:
Name| Phone_Number
Sam | 333333
sau đó sau khi chèn, table T nên có:
ID | Name | Phone_Number | Date_Inserted
105| Sam  | 111111       | 04/03/2014
106| Rita | 222222       | 04/03/2014
105| Sam  | 333333       | 04/04/2014
mà không có sự thay đổi ở trên, nó sẽ trông giống như:
INSERT INTO T SELECT CustID.nextval,Name,Phone_Number,SYSDATE FROM A;
tôi đã suy nghĩ của việc sử dụng,
INSERT INTO T
  SELECT CASE 
           WHEN NOT EXISTS(select null from T WHERE T.Name=A.Name) THEN CustID.nextVal
           ELSE (select ID from T where T.Name=A.Name) 
         END, 
         Name,
         Phone_Number,
         SYSDATE 
   FROM A;
, nhưng tôi không chắc chắn nếu nó sẽ làm việc và nó có vẻ dư thừa/xấu cho hiệu suất. Nếu có một cách ưa thích để làm điều này, xin vui lòng cho tôi biết.

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...