我創建下表並將FLOAT的默認值設置爲NULL,因爲我想在表中將缺省float值存儲爲NULL。但問題是,我在表中將default設置爲NULL後,所有customerReviewAverage值都變爲NULL。 以下是我創建表格和加載數據的代碼。當使用默認NULL時,MySQL浮點值全部變爲NULL
CREATE TABLE Products(sku INTEGER, name VARCHAR(255), description TEXT,
regularPrice FLOAT,
customerReviewAverage FLOAT default NULL);
LOAD DATA LOCAL INFILE 'product.csv'
INTO TABLE Products
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(sku, name, @description, regularPrice, @customerReviewAverage)
SET description = IF(@description='',NULL,@description);
這是product.csv中的一個數據示例。
19658847,Glanzlichter - CD,,12.99,5.0
19658856,Glanzlichter - CD,,6.99,
19658865,Glanzlichter - CD,,8.99,
1965886,Beach Boys '69 - CASSETTE,,6.99,4.5
後來我發現,
應修改爲
(sku, name, @description, regularPrice, customerReviewAverage)
你在哪裏設置'@ customerReviewAverage'? –
這是一個錯誤。謝謝。 –
這樣的問題提醒了我爲什麼要將數據加載到所有列都是字符串的登臺表中,然後在SQL中進行類型轉換。 –