在 MySQL 中,无论如何都可以将“False”加载到布尔列中。
在具有布尔列且数据为“真”或“假”的表中加载数据时,它会发出以下警告:
"Incorrect integer value: 'False' for column 'c1' at row 1".
Run Code Online (Sandbox Code Playgroud)
表结构如下
Create Table: CREATE TABLE `n1` (
`c1` boolean ,
`c2` int
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
我正在使用加载数据语句从文件“file1”加载,该文件以逗号分隔并用双引号括起来。以下是数据样本
"False","1"
"True","2"
Run Code Online (Sandbox Code Playgroud)
加载数据本地infile语句如下
load data local infile 'file1'
into table n1
FIELDS TERMINATED BY ','
enclosed by '\"' LINES
TERMINATED BY '\r\n';
Run Code Online (Sandbox Code Playgroud)
使用用户变量转换第一个值以加载 True/False 值。
然后,将其与值 'True' 进行比较
LOAD DATA LOCAL INFILE 'C:/bin/input.txt' INTO TABLE n1
FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n' (@var1,c2)
SET c1 = (@var1 = 'True');
Run Code Online (Sandbox Code Playgroud)
C:\bin>dir
Volume in drive C is TI10665200H
Volume Serial Number is A273-2EFF
Directory of C:\bin
10/21/2014 10:01 AM <DIR> .
10/21/2014 10:01 AM <DIR> ..
10/21/2014 10:01 AM 23 input.txt
1 File(s) 23 bytes
2 Dir(s) 685,548,244,992 bytes free
C:\bin>type input.txt
"False","1"
"True","2"
C:\bin>
Run Code Online (Sandbox Code Playgroud)
USE test
DROP TABLE IF EXISTS n1;
CREATE TABLE `n1` (
`c1` boolean ,
`c2` int
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
LOAD DATA LOCAL INFILE 'C:/bin/input.txt' INTO TABLE n1
FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
LINES TERMINATED BY '\r\n' (@var1,c2)
SET c1 = (@var1 = 'True');
SELECT * FROM n1;
Run Code Online (Sandbox Code Playgroud)
mysql> USE test
Database changed
mysql> DROP TABLE IF EXISTS n1;
Query OK, 0 rows affected (0.14 sec)
mysql> CREATE TABLE `n1` (
-> `c1` boolean ,
-> `c2` int
-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.38 sec)
mysql> LOAD DATA LOCAL INFILE 'C:/bin/input.txt' INTO TABLE n1
-> FIELDS TERMINATED BY ',' ENCLOSED BY '\"'
-> LINES TERMINATED BY '\r\n' (@var1,c2)
-> SET c1 = (@var1 = 'True');
Query OK, 2 rows affected (0.03 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT * FROM n1;
+------+------+
| c1 | c2 |
+------+------+
| 0 | 1 |
| 1 | 2 |
+------+------+
2 rows in set (0.00 sec)
mysql>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9127 次 |
| 最近记录: |