2009-12-03 29 views
9

Xin chào Tôi đang cố gắng hiển thị các ràng buộc trong một trong các bảng của tôi nhưng vì một số lý do tôi nhận được thông báo không có hàng nào được chọn. Lưu ý dưới đây là bảng tôi đã tạo.Hiển thị các ràng buộc trong một bảng

Create table Teams (
    TeamID varCHAR2(4) constraint Teams_TeamID_PK Primary Key, 
    TeamName VARCHAR2(40) 
); 

Đây là mã tôi đang sử dụng để hiển thị các ràng buộc của mình.

SELECT constraint_name, 
     constraint_type, 
     search_condition 
    FROM USER_CONSTRAINTS 
WHERE table_name = 'Teams'; 

Tôi là tân binh nên tôi muốn đảm bảo rằng tôi hiểu điều gì là sai. Tôi đã cố gắng để giảm bảng suy nghĩ rằng những hạn chế của tôi đã không mất - Tôi đã không, cũng không phải tôi nhận được bất kỳ lỗi nào khi tôi tạo ra bảng và tôi tham khảo TeamID trong bảng khác. Vì vậy, khi tôi cố gắng để thả bảng tôi nhận được một thông báo lỗi khi là những gì tôi đã hy vọng.

+0

Sự cố của bạn đánh tôi vì bạn đang thực hiện hành động này với tư cách người dùng khác và/hoặc không cam kết giao dịch khi bạn tạo bảng. –

+0

TẠO TẠO là DDL tự động thực hiện khi thực hiện trong Oracle. – DCookie

+0

Bạn không thể thả bảng được tham chiếu bởi các bảng khác, trừ khi bạn chỉ định "CẤU TRÚC CASCADE", tức là "DROP TABLE Teams CASCADE CONSTRAINTS" –

Trả lời

1
select dbms_mview.get_ddl('TABLE',USER,'TEAMS') from dual; 
18

Hãy thử điều này:

SELECT constraint_name, 
     constraint_type, 
     search_condition 
    FROM USER_CONSTRAINTS 
WHERE table_name = 'TEAMS'; 

Trừ dụng dấu ngoặc kép khi tạo ra, tất cả các tên đối tượng trong Oracle là chữ hoa.

+0

Hoạt động! tuyệt vời ... –

1

Nếu bạn thích những cái tên CamelCase, bảng kịch bản tạo cần phải có được:

Create table "Teams" ( 
    "TeamID" varCHAR2(4) constraint "Teams_TeamID_PK" Primary Key, 
    "TeamName" VARCHAR2(40) 
); 

Nếu không có dấu nháy kép Oracle helpfully chuyển đổi tất cả các định chữ hoa :)

1

Sử dụng đoạn mã sau :

show create table table_name; 
+0

Sẽ làm việc trong MySQL nhưng không phải trong MS SQL Server và Oracle. –

2

Cá nhân tôi sử dụng:

SELECT * FROM all_constraints WHERE Table_Name = <TableName>; 
0

Nhập tên bảng trong trường hợp cao hơn trong mệnh đề đơn là where.

ví dụ: WHERE table_name = 'TEAMS';

+1

Từ khóa SQL không phân biệt chữ hoa chữ thường: http://stackoverflow.com/questions/153944/is-sql-syntax-case-sensitive –

Các vấn đề liên quan