是否可以一次向多個表中插入一行?如果你用一個ID來做幾個表;在INSERT失敗的情況下,確保完整性的最佳方法是什麼?MySQL多插入? MySQL數據庫完整性失敗後INSERT
1
A
回答
4
這正是transactions的用途。如果有任何命令失敗,因爲START TRANSACTION
整個事情回滾:
START TRANSACTION;
INSERT INTO sometable VALUES(NULL,'foo','bar');
INSERT INTO someothertable VALUES (LAST_INSERT_ID(),'baz');
COMMIT;
這是MySQL,你不能用MyISAM表使用事務處理(你需要的表使用一些引擎支持該,可能InnoDB)。
這將永遠不會被插入到表(通常你有一些分支,如一個IF):
START TRANSACTION;
INSERT INTO sometable VALUES(NULL,'data','somemoredata');
ROLLBACK;
警告:那些更改數據庫結構 SQL命令(例如CREATE
,ALTER
, DROP
)無法回滾!
+1
謝謝!我的表是MyISAM;我將與 轉換>> ALTER TABLE mytable ENGINE = InnoDB; – KeatsKelleher 2010-08-26 15:05:57
1
0
MySQL能夠insert multiple rows(搜索「多行」)是這樣的:
INSERT INTO table (field1, field2, ...) VALUES (value1, value2), (value3, value4), etc...
然而,有沒有辦法告訴什麼讓插入,什麼不是因違反約束,超出了查詢,返回記錄數,重複數和警告數。您也不能使用last_insert_id()
來確定新行的ID,因爲它只返回創建的LAST ID,而不是一組ID。
如果您需要保證完整性,請使用單行插入語句和事務。 「
相關問題
- 1. MySql INSERT失敗
- 2. 多個MySQL行INSERT失敗
- 3. MySQL的INSERT失敗
- 4. 插入MySql失敗
- 5. MySQL數據的完整性?
- 6. MySQL的導入數據庫失敗
- 7. 完全加入Mysql失敗
- 8. 刪除後PHP MySQL插入失敗
- 9. PHP插入到mysql後丟失數據
- 10. 插入數據庫失敗
- 11. 數據庫插入失敗
- 12. 數據庫插入失敗
- 13. 緩存的mysql插入 - 保留數據的完整性
- 14. INSERT INTO與node-mysql失敗
- 15. MySQL INSERT BEFORE TRIGGER失敗?
- 16. MySQL插入失敗innodb
- 17. MySQL插入表失敗
- 18. MySQL插入失敗,'&'字符
- 19. MySQL複製Slave_SQL_Running在插入數據後失敗
- 20. 插入MySQL數據庫的PHP PDO代碼失敗
- 21. MySQL的插入查詢失敗太多的數據
- 22. Mysql多數據庫插入(Java,Hibernate,Jboss)
- 23. 導入MySQL 5.1時MySQL 5.1數據庫導出失敗
- 24. PHP數組插入MySQL失敗
- 25. PHP MySQL插入數據庫
- 26. MySQL數據庫插入
- 27. 插入到mysql數據庫
- 28. MySQLSyntaxError插入MySQL數據庫
- 29. 插入MySQL數據庫
- 30. 插入數據庫MySQL Django
」一次插入一行到多個表「聽起來像一個不好的數據庫設計。將值插入一個表中,獲取該行的id(主鍵)並相應地使用id值更新其他表。 – Chris 2010-08-26 14:53:07
所以我應該把200個字段和超過100萬條目放在同一個表中? – KeatsKelleher 2010-08-27 13:00:50