0

シンプルそのもの。自動インクリメント フィールドが必要ですが、手動で設定する必要があるいくつかのフィールドで ID を繰り返す必要がある場合があります。

PHP を使用して Mysql の AUTOINCREMENT フィールドでそれを行うのに問題はありますか? (一貫性 、 ... )

4

3 に答える 3

1

PHP 構造に応じて、以下を置き換えることができます。

INSERT INTO table_name (name, incr)
VALUES ('hello', {$incr}) # using retrieved data

INSERT INTO table_name (name, incr)
SELECT 'hello', incr
FROM (  SELECT (incr + 1) AS incr
        FROM table_name
        ORDER BY incr DESC
        UNION
        SELECT 1) AS h
LIMIT 1

incr基本的には、テーブルの最高値をチェックするか、最初に 1 を与えるだけです。これにより、MySQL 呼び出しが 1 回だけ必要になり、速度が向上します。

于 2012-07-16T11:29:36.043 に答える
1
  1. 自動インクリメント フィールドを手動で設定できます。インデックスはその数値からカウントアップを続けます (ID が現在の AI インデックスよりも小さい場合を除く)。
  2. 自動インクリメント フィールドは一意であるため、ai フィールドを手動で設定するときは十分に注意する必要があります。
  3. 通常、オートインクリメント フィールドは手動で設定しないでください。ユースケースを投稿していただければ、より良い解決策を見つけるお手伝いができるかもしれません
于 2012-07-16T11:22:07.717 に答える
0

複合主キー (主キーを作成するための 2 つ以上の列) の使用を検討してください。1 つの列は自動インクリメントで、もう 1 つの列は「繰り返し ID」です。いずれにせよ、これにより、各行に一意のキーが確実に割り当てられます。

于 2012-07-16T11:26:45.007 に答える