NAVICATでのバルクデータ変更のための関数の使用
ステートメントを使用したSQLクエリを使用することです。 各行を個別に更新する代わりに、複数の行にわたって特定の列に関数を適用する単一のSQLクエリを記述できます。たとえば、列
のUPDATE
テーブルのすべての行のcustomers
列を更新します。 birthdate
、DATE
、DATE_ADD()
、
birthdate
)に置き換えることを忘れないでください。customers
ステートメント内でより複雑なロジックを使用することもできます。 たとえば、CONCAT()
ステートメントを使用してSUBSTR()
>列に基づいてUPPER()
> LOWER()
を使用してSET
列に基づいてUPDATE
列を更新することができます。NAVICAT内の関数を使用して、複数の行を効率的に更新するにはどうすればよいですか? ループまたはカーソル内のDATE_ADD()
ステートメントを使用しないでください。これらは、巧みに作られた単一のDATEADD()
ステートメントよりも大幅に遅いためです。 クエリの実行をスピードアップするために、ADD_MONTHS()
句(行のサブセットのみを更新している場合)に関連する列で適切なインデックス作成を常に使用します。さらに、採用する機能がデータベースシステムに最適化されていることを確認してください。 一部の機能は、本質的に他の関数よりも計算上高価かもしれません。 複雑な計算を実行している場合は、メインテーブルを更新する前に、結果を事前に計算して一時テーブルに保存することを検討してください。これにより、特に非常に大きなデータセットの場合、パフォーマンスが劇的に向上する可能性があります。 NAVICATのクエリビルダーは、これらの複雑なクエリの視覚化と構築を支援できます。 NAVICAT自体は、独自の機能セットを提供していません。データベースの組み込み関数を実行するクライアントとして機能します。
文字列関数:
CONCAT()
SUBSTR()
日付/時刻関数:REPLACE()
TRIM()
、UPPER()
、LOWER()
、LENGTH()
、DATE_SUB()
CURDATE()
NOW()
DATE_FORMAT()
条件付き関数:ROUND()
TRUNCATE()
集計関数:ABS()
、CEIL()
、FLOOR()
、CASE
パフォーマンスの考慮事項はありますか? いくつかの要因が更新の速度に大きく影響する可能性があります:IF()
WHERE
句で使用されている列に適切なインデックスが存在することを確認します(行のサブセットのみを更新している場合)。インデックスは、データベースが更新する行を見つけるために必要な時間を大幅に削減します。 複雑な計算を実行している場合は、値を事前に計算して一時的なテーブルに保存することを検討してください。BEGIN TRANSACTION
COMMIT
ROLLBACK
データベースサーバーリソース:以上がデータのNAVICATバッチ変更に関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。