Mysql 为什么可以';我是否将.csv中的表中的null和char数据值导入db2?

Mysql 为什么可以';我是否将.csv中的表中的null和char数据值导入db2?,mysql,csv,db2,Mysql,Csv,Db2,我的教授指示我们进入ff。这样我们就可以在课堂上进行她计划的实验练习了 -- Make sure database HR exist in your computer. connect to HR; create table region (regionid int not null, regionname varchar(25), constraint region_pk primary key(regionid)); describe table region; -- Im

我的教授指示我们进入ff。这样我们就可以在课堂上进行她计划的实验练习了

-- Make sure database HR exist in your computer.
connect to HR;

create table region
 (regionid int not null,
  regionname varchar(25),
  constraint region_pk primary key(regionid));
  describe table region;

-- Importing data from excel file region.csv into the table region
import from c:\exer\region.csv of del insert into region;
select * from region; 

create table country
 (countryid varchar(2) not null,
  countryname varchar(40),
  regionid int,
constraint country_pk primary key(countryid),
constraint country_fk foreign key(regionid) references region(regionid));
describe table country;
-- Importing data from excel file country.csv into the table country
import from c:\exer\country.csv of del insert into country;
select * from country; 

create table location
 (locid int not null,
  street varchar(25),
  zip varchar(12),
  city varchar(30),
  state varchar(12),
  countryid varchar(2),
constraint location_pk primary key(locid),
constraint location_fk foreign key(countryid) references country(countryid));
describe table location;
-- Importing data from excel file location.csv into the table location
import from c:\exer\location.csv of del insert into location;
select * from location;

create table jobs
 (jobid varchar(10) not null,
  jobtitle varchar(35),
  min_sal dec(10, 2),
  max_sal dec(10, 2),
constraint jobs_pk primary key(jobid));
describe table jobs;
INSERT INTO jobs VALUES( 'AD_PRES', 'President', 20000, 40000);
INSERT INTO jobs VALUES( 'AD_VP', 'Administration Vice President', 15000, 30000);
INSERT INTO jobs VALUES( 'AD_ASST', 'Administration Assistant', 3000, 6000);
INSERT INTO jobs VALUES( 'FI_MGR', 'Finance Manager', 8200, 16000);
INSERT INTO jobs VALUES( 'FI_ACCOUNT', 'Accountant', 4200, 9000);
INSERT INTO jobs VALUES( 'AC_MGR', 'Accounting Manager', 8200, 16000);
INSERT INTO jobs VALUES( 'AC_ACCOUNT', 'Public Accountant', 4200, 9000);
INSERT INTO jobs VALUES( 'SA_MAN', 'Sales Manager', 10000, 20000);
INSERT INTO jobs VALUES( 'SA_REP', 'Sales Representative', 6000, 12000);
INSERT INTO jobs VALUES( 'PU_MAN', 'Purchasing Manager', 8000, 15000);
INSERT INTO jobs VALUES( 'PU_CLERK', 'Purchasing Clerk', 2500, 5500);
INSERT INTO jobs VALUES( 'ST_CLERK', 'Stock Clerk', 2000, 5000);
INSERT INTO jobs VALUES( 'SH_CLERK', 'Shipping Clerk', 2500, 5500);
INSERT INTO jobs VALUES( 'IT_PROG', 'Programmer', 4000, 10000);
INSERT INTO jobs VALUES( 'MK_MAN', 'Marketing Manager', 9000, 15000);
INSERT INTO jobs VALUES( 'MK_REP', 'Marketing Representative', 4000, 9000);
INSERT INTO jobs VALUES( 'HR_REP', 'Human Resources Representative', 4000, 9000);
INSERT INTO jobs VALUES( 'PR_REP', 'Public Relations Representative', 4500, 10500);
INSERT INTO jobs VALUES( 'ST_MAN', 'Stock Manager', 5500, 8500);
select * from jobs;

create table employee 
  (empid int not null,
  fname varchar(20), 
  lname varchar(20), 
  email varchar(25), 
  phone varchar(20), 
  hdate date, 
  jobid varchar(10), 
  salary dec(10,2), 
  comm dec(10, 2), 
  mgrid int, 
  deptid int,
constraint employee_pk primary key(empid),
constraint employee_fk foreign key(jobid) references jobs(jobid));
describe table employee;
-- Importing data from excel file employee.csv into the table employee
import from c:\exer\employee.csv of del insert into employee;
select * from employee; 

create table department
 (deptid int not null,
  deptname varchar(30),
  mgrid int,
  locid int,
constraint department_pk primary key(deptid),
constraint department_fk1 foreign key(mgrid) references employee(empid),
constraint department_fk2 foreign key(locid) references location(locid));
describe table department;
-- Importing data from excel file department.csv into the table department
import from c:\exer\department.csv of del insert into department;
select * from department;


create table job_history
 (empid int not null,
  start_date date not null,
  end_date date,
  jobid varchar(10),
  deptid int,
constraint job_history_pk primary key(empid, start_date),
constraint job_history_fk1 foreign key(jobid) references jobs(jobid),
constraint job_history_fk2 foreign key(deptid) references department(deptid));
describe table job_history; 
-- Importing data from excel file job_history.csv into the table job_history
import from c:\exer\job_history.csv of del insert into job_history;
select * from job_history;

除了导入department.csv和job_history.csv以将记录包含在表中的部分之外,我能够完成所有工作。这是我的生日礼物。我做这件事的时候出现了错误声明

db2 => import from C:\exer\department.csv of del insert into department
SQL3109N  The utility is beginning to load data from file
"C:\exer\department.csv".

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "12" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "13" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "14" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "15" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "16" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "17" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "18" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "19" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "20" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "21" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "22" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "23" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "24" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "25" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "26" of
the input file.

SQL3148W  A row from the input file was not inserted into the table.  SQLCODE
"-530" was returned.

SQL0530N  The insert or update value of the FOREIGN KEY "VALUED
CUSTOMER.DEPARTMENT.DEPARTMENT_FK1" is not equal to any value of the parent
key of the parent table.  SQLSTATE=23503

SQL3185W  The previous error occurred while processing data from row "27" of
the input file.

SQL3110N  The utility has completed processing.  "27" rows were read from the
input file.

SQL3221W  ...Begin COMMIT WORK. Input Record Count = "27".

SQL3222W  ...COMMIT of any database changes was successful.

SQL3149N  "27" rows were processed from the input file.  "11" rows were
successfully inserted into the table.  "16" rows were rejected.


Number of rows read         = 27
Number of rows skipped      = 0
Number of rows inserted     = 11
Number of rows updated      = 0
Number of rows rejected     = 16
Number of rows committed    = 27

与我导入job_history.csv时发生的情况相同,唯一的区别是excel文件中包含的行数


这是department.csv和job_history.csv的内容(我刚刚复制并粘贴了excel格式的内容,但这应该是表格格式的)

department.csv

10  Administration  200 1700
20  Marketing   201 1800
30  Purchasing  114 1700
40  Human Resources 203 2400
50  Shipping    121 1500
60  IT  103 1400
70  Public Relations    204 2700
80  Sales   145 2500
90  Executive   100 1700
100 Finance 108 1700
110 Accounting  205 1700
120 Treasury    0   1700
130 Corporate Tax   0   1700
140 Control And Credit  0   1700
150 Shareholder Services    0   1700
160 Benefits    0   1700
170 Manufacturing   0   1700
180 Construction    0   1700
190 Contracting 0   1700
200 Operations  0   1700
210 IT Support  0   1700
220 NOC 0   1700
230 IT Helpdesk 0   1700
240 Government Sales    0   1700
250 Retail Sales    0   1700
260 Recruiting  0   1700
270 Payroll 0   1700
job_history.csv

102 1/13/1993   7/24/1998   IT_PROG 60
101 9/21/1989   10/27/1993  AC_ACCOUNT  110
101 10/28/1993  3/15/1997   AC_MGR  110
201 2/17/1996   12/19/1999  MK_REP  20
114 3/24/1998   12/31/1999  ST_CLERK    50
122 1/1/1999    12/31/1999  ST_CLERK    50
200 9/17/1987   6/17/1993   AD_ASST 90
176 3/24/1998   12/31/1998  SA_REP  80
176 1/1/1999    12/31/1999  SA_MAN  80
200 7/1/1994    12/31/1998  AC_ACCOUNT  90

我注意到值为0和varchar的行被拒绝了…解决此问题的方法是什么?

解决此类问题的最佳方法可能是:

  • 在DB2中,创建一个表,其中包含一个允许空值的列
  • 在DB2中,将该表的内容导出到CSV(在DB2中称为DEL)
  • 在文本编辑器中检查生成的CSV,查看空值是如何准确导出的
  • 相应地调整您的输入CSV

  • 希望它对您有所帮助(不仅仅是空值,还有其他奇怪的情况;-)。

    尝试使用 不为空默认值“”
    因此,excel中是否有空值无关紧要。

    0
    !=
    NULL
    。这种情况是在抱怨,因为它正在寻找id为0的员工,而没有找到。您需要调整数据以删除0(您应该能够删除该字符)。您为
    作业\u历史记录显示的数据不应导致错误(作为外键引用的所有行都存在)。您可以使其他一些内容不可为空(区域/国家名称为空没有多大意义…),但这不是您的实际问题。