0

IndoDB テーブルがあります

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL,
  `network_id` int(10) unsigned NOT NULL,
  `nickname` varchar(20) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
 UNIQUE KEY `network_id` (`network_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

$network_infoPHPでは、ペアを含むnetwork_id配列を受け取ります(どこからでも構いません)nicknamenetwork_idに存在するものについてはusers、更新したいと思いnicknameます。存在しないものについては、 generated (new incremented) を使用してテーブルに挿入したいと思いますid

以前、idAUTO_INCREMENT として使っていたのですが、 などのクエリINSERT IGNOREで、挿入が行われていなくても常にインクリメントされてしまい、よくありません。

この問題を解決する最良の方法はどれですか?

4

1 に答える 1

0

行を次のように変更しますid--

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

int(10) をそのまま使用することもできますが、いつの日か必要になった場合に備えて、ID を巨大なサイズに拡張できるようにすることが常に最善であると考えています。

の後CHARSET=ut8に -- を追加します。

AUTO_INCREMENT=1;

そうすれば、テーブルはインクリメントを開始する場所を認識します。

于 2013-05-29T14:38:46.640 に答える