0

私は次のテーブル構造を持っており、今日の日付の後に「2012061000001」のように00001が続くエントリが必要な列vidがあります。次回テーブルが更新されると、vidは「20120610000002」になります。明日のテーブルが更新される場合、vidは2012061100003になります。

+----+------+-------------+---------+------------+-------------+
| id | vid  | visitorname | company | contact    | whometomeet |
+----+------+-------------+---------+------------+-------------+
|  1 | NULL | rakesh      | godrej  | 9987654123 | abcdef      |
|  2 | NULL | samir       | infosys | 9987654123 | abcdef      |
+----+------+-------------+---------+------------+-------------+

どうすればこれを達成できますか?

これが私のテーブル構造で、id を auto_increment として設定します。2 つのフィールド auto_increment を使用できますか

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| vid         | varchar(15)  | YES  |     | NULL    |                |
| visitorname | varchar(255) | YES  |     | NULL    |                |
| company     | varchar(255) | YES  |     | NULL    |                |
| contact     | varchar(30)  | YES  |     | NULL    |                |
| whometomeet | varchar(255) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

そして、次のクエリを実行すると、以下のような結果が得られました

訪問者 (vid) 値に挿入 (concat(replace(left(current_timestamp,10),'-',''),lpad('1','5','0')));

+----+---------------+-------------+---------+------------+-------------+
| id | vid           | visitorname | company | contact    | whometomeet |
+----+---------------+-------------+---------+------------+-------------+
|  1 | NULL          | rakesh      | godrej  | 9987654123 | abcdef      |
|  2 | NULL          | samir       | infosys | 9987654123 | abcdef      |
|  3 | 2012061000001 | NULL        | NULL    | NULL       | NULL        |
+----+---------------+-------------+---------+------------+-------------+

しかし、問題は、明日もこのクエリを実行すると、vidでその1が取得されるたびに、明日の日付が取得されますが、その後に00001が続き、00002が必要です。

4

1 に答える 1

2

そのような列を組み合わせたくないことをお勧めします-それらのフィールドに関連するクエリを実行するのは本当に面倒です(つまり、非効率的です...)

代わりに、date列と列を用意しvidます。例えば

+----+----------+------+-------------+---------+------------+-------------+
| id | date     | vid  | visitorname | company | contact    | whometomeet |
+----+----------+------+-------------+---------+------------+-------------+
|  1 | 20120610 |    1 | rakesh      | godrej  | 9987654123 | abcdef      |
|  2 | 20120610 |    2 | samir       | infosys | 9987654123 | abcdef      |
+----+----------+------+-------------+---------+------------+-------------+

次に、特定の日付のイベントを選択できます。

ユースケースによってはvidAUTO_INCREMENT. (ただし、その時点では と の違いを見分けるのは困難idですvid。)

于 2012-06-10T16:46:54.230 に答える