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

Cột nhận dạng Oracle và chèn vào lựa chọn

Tôi tin rằng truy vấn dưới đây hoạt động, tôi chưa thử nghiệm!

INSERT INTO Test (b)
SELECT * FROM
(
   SELECT 'z' FROM dual
   UNION ALL
   SELECT 'zz' FROM dual
);

Không chắc, nếu nó giúp bạn theo bất kỳ cách nào.

Đối với, GENERATED ALWAYS AS IDENTITY Nội bộ Oracle chỉ sử dụng một Trình tự. Và các tùy chọn về Trình tự chung cũng áp dụng cho điều này.

NEXTVAL được sử dụng để tìm nạp chuỗi có sẵn tiếp theo và rõ ràng nó là một cột giả.

Dưới đây là của Oracle

Bạn không thể sử dụng CURRVALNEXTVAL trong các cấu trúc sau:

  • Một truy vấn con trong DELETE , SELECT hoặc UPDATE tuyên bố
  • Một truy vấn về một chế độ xem hoặc một chế độ xem cụ thể hóa
  • Câu lệnh SELECT với toán tử DISTINCT
  • Câu lệnh SELECT với mệnh đề GROUP BY hoặc mệnh đề ORDER BY
  • Một SELECT câu lệnh được kết hợp với một SELECT khác tuyên bố với UNION, INTERSECT hoặc MINUS toán tử đặt
  • Mệnh đề WHERE của câu lệnh SELECT
  • Giá trị DEFAULT của một cột trong câu lệnh CREATE TABLE hoặc ALTER TABLE
  • Điều kiện của ràng buộc KIỂM TRA

subquerySET quy tắc hoạt động ở trên sẽ trả lời Câu hỏi của bạn.

Và vì lý do NULL, khi pseudocolumn (ví dụ:NEXTVAL) được sử dụng với phép toán SET hoặc bất kỳ quy tắc nào khác được đề cập ở trên, đầu ra là NULL, vì Oracle không thể trích xuất chúng khi kết hợp nhiều lựa chọn.

Hãy cho chúng tôi xem truy vấn dưới đây,

select rownum from dual
union all 
select rownum from dual

kết quả là

ROWNUM
1
1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để có được nhân viên với người quản lý của họ

  2. Chế độ xem hiện tại là gì Ảnh chụp nhanh APPLIC_TOP

  3. Tạo trình kích hoạt cập nhật một cột trên một bảng khi một cột trong bảng khác được cập nhật

  4. Chuyển đổi Oracle current_timestamp sang giây

  5. Oracle 11g - Kiểm tra ràng buộc với RegEx