在实际工作中经常遇到建表删表的操作,每次都是网上现查,浪费时间。现在总结下,下次直接用。
一、删除某个用户下的所有表:
1、先根据用户TEST 查询出所有的表,并且拼接成drop 语句。
SELECT 'DROP table TEST.'||table_name||';' FROM all_tables WHERE owner='TEST';
2、然后挨个执行结果,或者写个批量执行的语句,完成删库操作。
3、如果能用数据库可视化工具的话,直接删除也是可以的。
二、建库:
1、写好脚本,建表语句,外键等,后缀名为.sql,内容如下:
CREATE TABLE "STD_COMPANY" (
"ID" VARCHAR2(38 BYTE) NOT NULL,
"COMPANY_CODE" VARCHAR2(38 BYTE) NOT NULL,
"COMPANY_NAME" VARCHAR2(300 BYTE) NOT NULL,
"COMPANY_VALUE" NUMBER
);
COMMENT ON COLUMN "STD_COMPANY"."COMPANY_CODE" IS '厂商编号';
COMMENT ON COLUMN "STD_COMPANY"."COMPANY_NAME" IS '厂商名称';
COMMENT ON COLUMN "STD_COMPANY"."COMPANY_VALUE" IS '数字唯一标识';
COMMENT ON TABLE "STD_COMPANY" IS '厂商信息表';
-- ----------------------------
-- Uniques structure for table STD_COMPANY
-- ----------------------------
ALTER TABLE "STD_COMPANY" ADD CONSTRAINT "INDEX33555461" UNIQUE ("COMPANY_CODE") ;
ALTER TABLE "STD_COMPANY" ADD CONSTRAINT "INDEX33555462" UNIQUE ("COMPANY_VALUE") ;
-- ----------------------------
-- Checks structure for table STD_COMPANY
-- ----------------------------
ALTER TABLE "STD_COMPANY" ADD CONSTRAINT "SYS_C0036250" CHECK ("COMPANY_CODE" IS NOT NULL) ;
ALTER TABLE "STD_COMPANY" ADD CONSTRAINT "SYS_C0036251" CHECK ("COMPANY_NAME" IS NOT NULL) ;
ALTER TABLE "STD_COMPANY" ADD CONSTRAINT "SYS_C0036252" CHECK ("COMPANY_VALUE" IS NOT NULL) ;
注意: 表字段不能有空格 ,否则你的表字段就带有空格,不带就会报 ORA-00904: "COMPANY_VALUE": 标识符无效。
2、数据量大的话建议直接还行sql文件。