當試圖插入一條記錄到一個表,我得到序列錯誤:的CakePHP在Oracle調用seq.currval時沒有序列存在
Query: SELECT my_table_seq.currval FROM dual
Warning (512): SQL Error: ORA-02289: sequence does not exist
有此表上沒有序列。它更像是一個HABTM。我有一個表:
CREATE TABLE "MYSCHEMA"."MY_TABLE"
(
"WORK_ID" NUMBER NOT NULL ENABLE,
"ITEM_ID" NUMBER NOT NULL ENABLE,
CONSTRAINT "MY_TABLE_PK" PRIMARY KEY ("WORK_ID", "ITEM_ID")
)
我使用手動添加這兩個標識:
$this->MyModel->set(array('work_id' => 1, 'item_id' => 2));
$this->MyModel->save();
任何想法如何避免錯誤?我只需要執行$this->MyModel->query()
並手動運行查詢?
我不確定我是否理解這個問題。您是否問如何讓Oracle避免在查詢使用無效序列時拋出異常?如何在不引用序列的情況下填充此表中的數據?還有別的嗎? – 2011-06-08 16:16:55
如何避免拋出錯誤?可以做到嗎?數值顯示在數據庫中。 – 2011-06-08 16:23:46
我仍然不確定我是否理解這個問題。如果您發佈的SQL語句由於引用了無效的序列名稱而引發錯誤,顯而易見的答案是不發出該SQL語句(或發出引用有效序列名稱的SQL語句)。但我認爲你知道這一點,並有一些複雜的因素,可以防止你簡單地刪除SQL語句... – 2011-06-08 16:26:09