当前位置:网站首页 > SQL数据库编程 > 正文

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



目录

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);  //无法写入

          

到此这篇sqlldr导入限定条件(sqlldr只导入指定字段)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • goldendb数据库是用什么改的(goldendb数据库 mysql)2025-05-25 15:09:06
  • mysql主键可以设置为自动增加吗(mysql主键可以设置为自动增加吗对吗)2025-05-25 15:09:06
  • pymysql(Pymysql查询返回的结果)2025-05-25 15:09:06
  • pymysql的基本使用(pymysql sqlalchemy)2025-05-25 15:09:06
  • sqlldr导入定长文件(sqlldr导入导出)2025-05-25 15:09:06
  • mysql中主键可以为空吗(mysql的主键可以是varchar类型吗)2025-05-25 15:09:06
  • sql中写循环(sqlfor循环)2025-05-25 15:09:06
  • 增删改查sql语句语法(增删改查sql语句语法结构)2025-05-25 15:09:06
  • mysql主键可以是字符串吗(mysql中主键可以为空吗)2025-05-25 15:09:06
  • mysql主键重复会覆盖还是?(mysql主键重复怎么解决)2025-05-25 15:09:06
  • 全屏图片