有没有办法在列号不匹配的情况下将CSV导入MySQL?
我有一个MySQL "Employees“表,我们每月更新一次CSV文件。我已经在"Employees“表中添加了两个与我们的需求相关的额外列。使用以下MySQL语句通过导入表数据:
LOAD DATA LOCAL INFILE 'EmployeeDump-March.csv' REPLACE INTO TABLE employees
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\
在mysql 5.7.28中,我创建了如下表:
create table t1 (
id int not null,
d1 timestamp)
engine=innodb;
它可以很好地工作,并将d1与default value current_timetamp、on update current_timestamp一起创建为non-null。
但是,当我尝试使用两个时间戳字段创建相同的表时,如下所示:
create table t1 (
id int not null,
d1 timestamp,
d2 timestamp)
engine=innodb;
我收到一个错误:
SQL (1
我使用LOAD DATA INFILE将CSV导入到MySQL表中。表的一个字段存储邮政编码数据,这是我在表结构contributor_zipcode INT中定义的。
在CSV中,此字段有时为空。当我执行LOAD查询时,MySQL将抛出如下警告:
Incorrect integer value: '' for column 'contributor_zipcode' at row 180
我尝试将该字段重新定义为contributor_zipcode INT DEFAULT '0'和contributor_zipcode INT DEFAULT
我希望将表A复制到表B中,而不声明MySQL中的所有字段。
但问题是我的表B在开头有一个自动增量字段,名为id。
table_A
name age etc
-------|--------|--------|
abc | 28 | ... |
table_B
id name age etc
-------|-------|--------|--------|
我试着做这样的事情:
INSERT INTO table_B SELECT auto, * FROM table_A
但没起作用。什么是最好的解决方案?
在mysql (Ubuntu13.10,MySql 5.5)中,我试图创建一个表,该表将使用以下代码自动创建一个随机字母数字ID:
create table YGraph (
YGraphEdgeId CHAR(8) NOT NULL PRIMARY KEY DEFAULT SUBSTRING(MD5(RAND()) FROM 1 FOR 8),
YGraphStartVertex CHAR(6) NOT NULL,
YGraphEndVertex CHAR(6) NOT NULL
);
但是phpmyadmin在抱怨:
#1064 - You have an erro
好的,这会有点复杂。
但是现在我正在使用一个自己编写的函数来创建一个查询,用于在数据库中创建、插入页面。
我想知道是否有更聪明的方法来实现灵活的"insert into“方法。
问题是,在创建页面时,我有一些字段是可选的,所以现在我正在运行所有字段并检查它们是否已设置。:
//creates an Array which can be used to make a MySQL query
function createQueryArray($new) {
if (isset($this->users_id))
$this->query_array[&
我在mysql中创建了一个表
create table test (id int primary key not null auto_increment, vs varchar(255) not null);
跑时
insert into test (vs) values (null);
它抛出一个错误:
ERROR 1048 (23000): Column 'vs' cannot be null
但是当我试图插入两行
insert into test (vs) values (null),(null);
它起了作用,其结果是:
mysql> select * from
MySql不支持检查条款,所以我想我必须在表上使用触发器
在一个简单的表中,我们有两个字段,即意见字段必须在其中(“正常”、“坏”、“好”):
CREATE TABLE `user`.`opinionTable` (
`uid` INT NOT NULL,
`opinion` VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`uid`,`opinion`),
CHECK (opinion IN ('normal','bad','good'