
创建外键时的选项
创建测试表
drop table studentdrop table classdrop table student_classCreate table student(student_id integer not null student_name varchar( ) CONSTRAINT P_KEY_ primary key (student_id)) in luzl_ k_tb index in luzl_ k_tb Create table class(class_id integer not null class_name varchar( ) CONSTRAINT P_KEY_ primary key (class_id)) in luzl_ k_tb index in luzl_ k_tb Create table student_class(student_class_id integer student_id integer class_id integer) in luzl_ k_tb index in luzl_ k_tbalter table student_class add constraint if_class foreign key(class_id) references class(class_id) ON DELETE cascade ON UPDATE RESTRICTalter table student_class add constraint if_student foreign key(student_id) references student(student_id) ON DELETE cascade ON UPDATE RESTRICTInsert into student(student_id student_name) values( luzl )Insert into class(class_id class_name) values( db )Insert into student_class(student_class_id student_id class_id) values( )
On Delete 的选项有
Restrict/no action/cascade/set null 其中cascade选项指定的话 如果删除父记录 依赖于他的子记录也会自动删除 相当于级联删除 如果指定no action和cascade都会报错 因为还有子记录所以无法删除该记录 set nul允许删除父记录并且l会将子表中与父表关联的字段设置为null
On Update 只有两个选项 no action/restrict 它们在更新和删除时并没有区别:如果与子表关联不允许删除
lishixinzhi/Article/program/DB2/201311/21928这种写法是不能分批提交的,除非你用where条件+循环自己实现分批处理。
insert into ... select 的语法效率是很高的,不过数据量过大时需要很大的回滚段。
分批提交适用于游标逐行处理的情况,没到1000行提交一次,会比每行提交效率提高很多。
*** 作数据库命令
1、 启动数据库实例
#db2start
2、 停止数据库实例
#db2stop
如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force
3、 创建数据库
#db2 create db [dbname]
4、 连接到数据库
#db2 connect to [dbname] user[username] using [password]
5、 断开数据库连接
#db2 connect reset
*** 作数据表命令
1、 列出所有用户表
#db2 list tables
2、列出所有系统表
#db2 list tables for system
3、列出所有表
#db2 list tables for all
4、 列出系统表
#db2 list tables for system
5、列出用户表
#db2 list tables for user
6、 列出特定用户表
#db2 list tables for schema[user]
参考资料来源:百度百科—DB2
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)