シンプルそのもの。自動インクリメント フィールドが必要ですが、手動で設定する必要があるいくつかのフィールドで ID を繰り返す必要がある場合があります。
PHP を使用して Mysql の AUTOINCREMENT フィールドでそれを行うのに問題はありますか? (一貫性 、 ... )
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 回だけ必要になり、速度が向上します。
複合主キー (主キーを作成するための 2 つ以上の列) の使用を検討してください。1 つの列は自動インクリメントで、もう 1 つの列は「繰り返し ID」です。いずれにせよ、これにより、各行に一意のキーが確実に割り当てられます。