1. 查看約束條件
- MySQL: SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name = 'book';
- Oracle: SELECT * where table_name = '表名';
2. 使約束生效和失效
- Oracle
使約束條件失效:
ALTER TABLE 表名 DISABLE CONSTRANT 約束名;
使約束條件生效:
ALTER TABLE 表名 ENABLE CONSTRANT 約束名;
- MySQL
3. 修改列的約束條件
- 刪除主鍵:alter table 表名 drop primary key;
- 刪除非空約束:alter table 表名 modify 字段名 null;
- 刪除外鍵:alter table 表名 drop foreign key fk_name;
- 刪除唯一鍵:alter table 表名 drop index index_name;
- 添加表、列級約束:alter table 表名 modify (column) 字段名 字段類型 新約束
- 添加表級約束: alter table 表名 add [constraint 約束名] 約束類型(字段名) [外鍵的引用]
3. 修改表結構
- 增加新列
- Oracle:
ALTER TABLE 表名 ADD 列名 數據類型[DEFAULT 表達式][COLUMN CONSTRAINT];
如果要為表同時增加多列,可以按以下格式進行:
ALTER TABLE 表名 ADD (列名 數據類型[DEFAULT 表達式][COLUMN CONSTRAINT]...);
- MySQL:
ALTER TABLE 表名 add 字段名稱 類型(int,char,VARCHAR...) (約束)
- 修改列
修改列的屬性
- ALTER TABLE table_name MODIFY 字段名稱 類型定義 (約束) ;
修改列(可以修改列的名稱)
- ALTER TABLE users2 CAHNGE 列名 新列名 類型定義 約束;
- 刪除列
- Mysql: ALTER TABLE table_name DROP column_name;
- Oracle: ALTER TABLE 表名 DROP COLUMN 列名[CASCADE CONSTRAINTS];