2

SQL の行を同じテーブルにコピーしたいと思います。しかし、私のテーブルには「テキスト」列があります。

この SQL では:

CREATE TEMPORARY TABLE produit2 ENGINE=MEMORY SELECT * FROM produit WHERE pdt_ID = 'IPSUMS';
UPDATE produit2 SET pdt_ID='ID_TEMP';
INSERT INTO produit SELECT * FROM produit2;
DROP TABLE produit2;

このエラーが発生します:

#1163 - The used table type doesn't support BLOB/TEXT columns

これが私のテーブルです:

pdt_ID varchar(6)
pdt_nom varchar(130)
pdt_stitre varchar(255)
pdt_accroche varchar(255)
pdt_desc text
pdt_img varchar(25)
pdt_pdf varchar(10)
pdt_garantie varchar(80)
edit_ID varchar(7)
scat_ID int(11)
pdt_asso1 char(3)
pdt_asso2 char(3) 
pdt_online tinyint(4)

行を複製するのを手伝ってもらえますか? どのように?

4

1 に答える 1

4

TEXT 列 (実際には BLOB です) をメモリ テーブルに格納することはできません。こちらをご覧ください

最終的な目標によっては、エンティティ ID を保持する代わりに、TEXT 列の md5 ハッシュを挿入できます。それ以外の場合は、 pdt_desc などを別のテーブルに入れて、その主キーを参照する必要があります。これにより、ストレージ/メモリも節約できます。

于 2013-08-30T16:44:57.680 に答える