0

我正在使用 SQLYog Ultimate。

我有一个带有枚举字段的表,可以获取 3 个数字之一 - 0,1,2 我将 0 作为默认数字(在表中将其写为默认值)

我正在从 excel 文件创建一个表格,然后将表格内容插入到我的表格中。问题仅在于枚举字段:

  1. 如果我将此列留空,则它保持为空并且不会获得默认值
  2. 如果我在excel中输入“0”作为数字,那么当我插入我的表格时它保持为空
  3. 如果我在 excel 中输入“0”作为文本,那么当我插入我的表格时它保持为空

我想如何在 excel 中定义它,以便我可以用零值上传它?

我的工作步骤: 1. 准备 EXCEL 文件 2. 将 EXCEL 上传到由 EXCEL 定义创建的新​​临时表 3. INSERT INTO MY TABLE (SELECT * FROM TEMP_TABLE)

4

1 回答 1

0

我试图将一个带有 int 的表复制到一个带有 ENUM 的表中,并且以下在 phpmyadmin 中工作:

INSERT INTO tenum (enumf) SELECT '0' FROM excel

除了在 SELECT 中写入所有列,您还可以尝试

ALTER TABLE excel MODIFY numb VARCHAR(255);

由于我看不到您表的结构,因此很难编写确切的代码。第一行对我有用,并假设您对 excel 中的 ENUM 字段没有任何有意义的值(我从原始问题中理解了这一点)。如果它有意义,那么您可以在 SELECT (IF(numb=0,'0',numb)) 中编写 IF 语句。但是,如果我不了解表中 numb 字段的类型和 ENUM 定义,则很难编写有效的代码。

表的结构:

CREATE TABLE IF NOT EXISTS `tenum` (
  `enumf` enum('0','dsx') NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

表格excel的结构:

CREATE TABLE IF NOT EXISTS `excel` (
  `numb` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
于 2014-05-25T08:41:16.603 回答