2016-06-29 45 views
0

我有這個MySQL插入查詢是給我一個Error Code: 1241. Operand should contain 1 column(s)MySQL INSERT錯誤操作數應該包含1列

INSERT INTO esjp_content 
    (esjp_content.primary_key, esjp_content.template_id, esjp_content.section_ref, 
    esjp_content.position, esjp_content.indent, esjp_content.content, 
    esjp_content.summary_id, esjp_content.role_ref, esjp_content.author_id, 
    esjp_content.event_id, esjp_content.sys_time) 
VALUES 
    ((3, 1, 1, 0, 0, 'Some test content.', 0, 1, 1, 69, UNIX_TIMESTAMP(NOW())), 
    (4, 1, 1, 1, 1, 'Some test content2.', 0, 1, 1, 69, UNIX_TIMESTAMP(NOW()))) 
ON DUPLICATE KEY UPDATE 
    esjp_content.primary_key=VALUES(esjp_content.primary_key), 
    esjp_content.template_id=VALUES(esjp_content.template_id), 
    esjp_content.section_ref=VALUES(esjp_content.section_ref), 
    esjp_content.position=VALUES(esjp_content.position), 
    esjp_content.indent=VALUES(esjp_content.indent), 
    esjp_content.content=VALUES(esjp_content.content), 
    esjp_content.summary_id=VALUES(esjp_content.summary_id), 
    esjp_content.role_ref=VALUES(esjp_content.role_ref), 
    esjp_content.author_id=VALUES(esjp_content.author_id), 
    esjp_content.event_id=VALUES(esjp_content.event_id), 
    esjp_content.sys_time=VALUES(esjp_content.sys_time); 

它工作正常,如果我只是嘗試在時間插入1個紀錄,但我認爲,允許在單個語句中插入多個記錄INSERT。有任何想法嗎?

附:我知道查詢是羅嗦的,但這很好,因爲它是以編程方式生成的。

+0

'ON重複鍵UPDATE'沒用 - 你有沒有更新。你不是嗎? – Alex

+0

@Alex表中唯一唯一的鍵是'primary_key'。如果該值已經存在,我希望記錄中的每個字段都用正在傳遞的任何數據進行更新。否則,(指定的'primary_key'字段應該爲零,並且)我希望將新記錄添加到表中。 –

+0

@Alex我意識到這一點。它什麼都不做,因爲它出現錯誤。這就是我尋求幫助的原因。如果您有關於如何使它更好的建設性建議,我願意接受。 –

回答

2

我的不好,你的查詢沒問題。你只是有一些錯別字。

一個額外的開括號這裏:((3,

和一個右括號這裏:69, UNIX_TIMESTAMP(NOW())))

想如果你解決這個問題,一切都應該正常工作。

http://sqlfiddle.com/#!9/1e9f3f/1

INSERT INTO esjp_content 
    (esjp_content.primary_key, esjp_content.template_id, esjp_content.section_ref, 
    esjp_content.position, esjp_content.indent, esjp_content.content, 
    esjp_content.summary_id, esjp_content.role_ref, esjp_content.author_id, 
    esjp_content.event_id, esjp_content.sys_time) 
VALUES 
    ( 3, 1, 1, 0, 0, 'Some test content.', 0, 1, 1, 69, NOW()), 
    (4, 1, 1, 1, 1, 'Some test content2.', 0, 1, 1, 69, NOW() + INTERVAL 1 DAY) 
ON DUPLICATE KEY UPDATE 
    esjp_content.primary_key=VALUES(esjp_content.primary_key), 
    esjp_content.template_id=VALUES(esjp_content.template_id), 
    esjp_content.section_ref=VALUES(esjp_content.section_ref), 
    esjp_content.position=VALUES(esjp_content.position), 
    esjp_content.indent=VALUES(esjp_content.indent), 
    esjp_content.content='updated', 
    esjp_content.summary_id=VALUES(esjp_content.summary_id), 
    esjp_content.role_ref=VALUES(esjp_content.role_ref), 
    esjp_content.author_id=VALUES(esjp_content.author_id), 
    esjp_content.event_id=VALUES(esjp_content.event_id), 
    esjp_content.sys_time=VALUES(esjp_content.sys_time); 
+0

謝謝!我已經爲SQL小提琴添加了書籤。以前沒有看過那個網站,但看起來像一個偉大的工具! :) –

+0

非常歡迎你:-)這就是爲什麼SO存在的原因:爲了讓我們分享我們的知識和經驗:-)祝你的項目好運 – Alex

相關問題