2025年sqlldr导入限定条件(sqlldr只导入指定字段)

sqlldr导入限定条件(sqlldr只导入指定字段)p id main toc strong 目录 strong p 1 导入与导出 2 导出 2 高级建表处理 字段约束 1 基本约束 是否可赋 null 值与默认值 2 高级约束 1 唯一约束和主键 2 复合主键

大家好,我是讯享网,很高兴认识大家。



 <p id="main-toc"><strong>目录</strong></p> 

讯享网

1.导入与导出

2.导出

2.高级建表处理(字段约束)

1.基本约束(是否可赋null值与默认值)

2.高级约束

    1.唯一约束和主键

 2.复合主键(多个字段共享一个主键,只要多个字段不完全相同,则数据仍然可以写入)

3.自增约束

4.外键约束(具有外键的项会受到其他表相应的项的约束)



 1.导入

修改检索目录

vim /etc/my.cnf.d/mysql-server.cnf

加secure_file_priv="/myload/"

mkdir /myload

修改检索目录属主属组

chown mysql:mysql /myload/

setenforce 0

systemctl restart mysqld.service

创建库create database db1;

创建表(必须与检索目录中要导入的内容一致)

create table db1.user3(

 name varchar(30),

 password char(1),

 uid int,

 gid int,

 comment varchar(200),

 homedir varchar(200),

 shell varchar(200)

 );

将要导入的内容放入检索目录(system可以让Linux命令在MySQL环境下运行)

system cp /etc/passwd /myload


讯享网

导入

load data infile "/myload/passwd"

into table db1.user3

fields terminated by ":"

lines terminated by " ";

select * from db1.user3 into outfile "/myload/user.txt";

create table db1.t31(

name char(10) not null,

hz_id int  default "123"

);

    1.唯一约束和主键

         create table db1.t32(

        name char(10) unique,

        hz_id int  primary key,

        );

       

 2.复合主键(多个字段共享一个主键,只要多个字段不完全相同,则数据仍然可以写入)

            create table db1.t39(

            cip varchar(15),

            port smallint,

            status enum(“allow”,“deny”),

            primary key(cip,port)

            );

3.自增约束

           create table db1.t38(

           id int auto_increment,

           name char(10),

           class char(10),

           primary key(id)

           );

           

           验证自增约束

           Insert table db1.t38(name,class)

           values

           (‘jin’,‘5’),

           (‘li’, ‘3’),

           (‘zhang’, ‘4’)

           );

           当手动给具有auto_increment约束的项赋值,

           Insert into db1.t38

           values

           (4, ‘jj’, ‘6’);

           下一次auto_increment约束的值是4+1,

           当使用delete from db1.t38 删除所有的表内容

           再次执行

                        insert into db1.t38

                         values

                         (‘jk’, ‘9’),

                         (‘as’, ‘’8);

          其中auto_increment约束的项依然是5+1

          在这里前面删除表中内容不适合用delete,应该用truncate

          truncate db1.t38;

          

4.外键约束(具有外键的项会受到其他表相应的项的约束)

               create table db1.yg(

                      id int primary key auto_increment,

                      name char(10)

                      );

               create table db1.gz(

                      gz_id int,pay float,

                      foreign key(gz_id) references db1.yg(id)

                      on update cascade

                     on delete cascade

                      );

               验证外键的相应约束

                          insert into db1.yg(name) values (‘bob’),(‘tom’);

                          insert into db1.gz values (1,10000);

                         insert into db1.gz values (2,20000);

                         insert into db1.gz values (3,30000);  //无法写入

          


小讯
上一篇 2025-04-21 21:44
下一篇 2025-06-01 22:12

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/166151.html