0

SQLYog Ultimate を使用しています。

3つの数字の1つを取得できる列挙型フィールドを持つテーブルがあります-0、1、2デフォルトの数字を0にしました(テーブルにデフォルトとして書きました)

Excel ファイルからテーブルを作成し、テーブルのコンテンツをテーブルに挿入しています。問題は enum フィールドのみです。

  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 ステートメントを記述できます (IF(numb=0,'0',numb))。しかし、numb フィールドの型とテーブルの ENUM 定義を理解していないと、機能するコードを書くのは非常に困難です。

テーブルのテナムの構造:

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

テーブルエクセルの構造:

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