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

Xác định OID của một bảng trong Postgres 9.1?

Để nhận OID bảng, hãy truyền đến loại mã định danh đối tượng regclass (trong khi được kết nối với cùng một DB):

SELECT 'mytbl'::regclass::oid;

Thao tác này tìm bảng đầu tiên (hoặc chế độ xem, v.v.) có tên đã cho dọc theo search_path hoặc đưa ra một ngoại lệ nếu không tìm thấy.

Schema-đủ điều kiện cho tên bảng để loại bỏ sự phụ thuộc vào đường dẫn tìm kiếm:

SELECT 'myschema.mytbl'::regclass::oid;

Trong Postgres 9.4 trở lên, bạn cũng có thể sử dụng to_regclass('myschema.mytbl') , điều này không tạo ra ngoại lệ nếu không tìm thấy bảng:

  • Cách kiểm tra xem một bảng có tồn tại trong một lược đồ nhất định không

Sau đó, bạn chỉ cần truy vấn bảng danh mục pg_attribute về sự tồn tại của cột:

SELECT TRUE AS col_exists
FROM   pg_attribute 
WHERE  attrelid = 'myschema.mytbl'::regclass
AND    attname  = 'mycol'
AND    NOT attisdropped  -- no dropped (dead) columns
-- AND attnum > 0        -- no system columns (you may or may not want this)


  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 cách nào để thay đổi mật khẩu người dùng PostgreSQL?

  2. Làm cách nào để sử dụng toán tử PostgreSQL JSON (B) có chứa dấu chấm hỏi? qua JDBC

  3. Làm cách nào để tự động cập nhật dấu thời gian trong PostgreSQL

  4. Postgres Alter Column Integer thành Boolean

  5. PostgreSQL - Cách loại bỏ các giá trị lặp lại