13

WHERE句が存在しない限り、コンソールを介して行が更新されないようにするmysql構成設定があることをどこかで読んだと思います。

ドキュメントで見つけることができませんでした。そのオプションは存在しますか?

4

3 に答える 3

12

それがMYSQLSAFEUPDATEMODEです。

こちらを確認してください。

また、-safe-updatesオプションもあります。

于 2012-09-06T02:58:35.073 に答える
8

SET SQL_SAFE_UPDATES=0;クエリを実行する直前。

セーフモードに関するMySQLのヒントを参照してください。

初心者にとって、便利な起動オプションは--safe-updates(または、同じ効果を持つ--i-am-a-dummy)です。DELETE FROM tbl_nameステートメントを発行したが、WHERE句を忘れた場合に役立ちます。通常、このようなステートメントはテーブルからすべての行を削除します。--safe-updatesを使用すると、行を識別するキー値を指定することによってのみ行を削除できます。これは事故を防ぐのに役立ちます。

WHERE句でキー制約を指定するか、LIMIT句(またはその両方)を指定しない限り、UPDATEまたはDELETEステートメントを実行することはできません。例えば:

UPDATE tbl_name SET not_key_column=val WHERE key_column=val;

UPDATE tbl_name SET not_key_column=val LIMIT 1;
于 2012-09-06T02:59:42.827 に答える
2

MySQLドキュメントから:http://dev.mysql.com/doc/refman/5.5/en/mysql-tips.html

"4.5.1.6.2。--safe-updatesオプションの使用

初心者にとって、便利な起動オプションは--safe-updates(または、同じ効果を持つ--i-am-a-dummy)です。DELETE FROM tbl_nameステートメントを発行したが、WHERE句を忘れた場合に役立ちます。通常、このようなステートメントはテーブルからすべての行を削除します。--safe-updatesを使用すると、行を識別するキー値を指定することによってのみ行を削除できます。これは事故を防ぐのに役立ちます。

[...]

WHERE句でキー制約を指定するか、LIMIT句(またはその両方)を指定しない限り、UPDATEまたはDELETEステートメントを実行することはできません。」

于 2012-09-06T03:00:53.877 に答える