php - 加载数据 infile 默认值不插入表

标签 php mysql

我正在使用 LOAD DATAINFILE 导入一个 csv 文件

csv 列是名称、类型、状态

我的表结构是

Name  : varchar
TYPE  : Varchar
Status: Tiny int default value 1

I use this stmt :

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 LINES 

当我使用上面的语句时,它必须为每一行插入状态值 1,但它并没有插入相同的值。 请指教。

最佳答案

加载文件时,MySQL 期望它具有与目标表相同的列数,除非您另有指定,即使缺少的列具有默认值。因此,为您的 LOAD 语句提供一个列列表,并为 STATUS 的值提供一个文字 1:

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users 
  FIELDS TERMINATED BY ',' 
  ENCLOSED BY '"' 
  LINES TERMINATED BY '\n' 
  IGNORE 1 LINES 
  (`name`, `type`, 1)

您也可以使用 SET 子句:

LOAD DATA INFILE '/var/www/names.csv' 
INTO TABLE users 
  FIELDS TERMINATED BY ',' 
  ENCLOSED BY '"' 
  LINES TERMINATED BY '\n' 
  IGNORE 1 LINES 
  (`name`, `type`)
  SET `status` = 1

关于php - 加载数据 infile 默认值不插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10897277/

相关文章:

php - 使用 PHP 格式化 HTTP POST 请求中的数据

javascript - 如何将 JMVC (javascript-mvc) 和服务器端 MVC 结合在一起

php - mysql/php 中事件的基于时间的资源可用性

javascript - 如何使用ajax和php发送数据多个同名输入

php - JW Player Google Analytics Pro 跟踪

mysql - 无法 gem 安装 do_mysql。 mysql目录不存在

php - 响应式表和 mysql

mysql,错误代码: 2013.在查询期间丢失与MySQL服务器的连接

mysql - 导入多个大型sql dump mysql

php - 从两个表更新但失败