Joomla!,Wordpressでサイトを構築するためのヒント

直前でINSERTしたAUTO_INCREMENT属性を持つカラム情報を取り出すには

公開日| 2010年02月10日 | コメントはまだありません。

MySQLでテーブルのカラムの属性としてAUTO_INCREMENTを指定した場合、通常は、何も意識せずに指定された情報は、+1が実施されユニークな番号が振られます。また、このような情報は、プライマリーキー(PRIMARY KEY)として指定する場合が多いと思います。

さて、このようなテーブルに情報をINSERTした後、情報を取り出す時やリレーションを組みたいときは、この情報が必要なことが多々あります。

では、この情報を取り出すには、どうしたら良いでしょうか?
簡単です。以下のSQL文を発行してあげれば、直前にAUTO_INCREMENTで設定した情報を出力してくれます。

select last_insert_id() [from table name];

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
> mysql -h=xxx -u=username -p=**** dbname
 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 465
Server version: 5.1.36-community MySQL Community Server (GPL)
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> CREATE TABLE `test_autoincrement` (
    ->   `id` int unsigned NOT NULL AUTO_INCREMENT,
    ->   `value` text NOT NULL,
    ->   PRIMARY KEY (`id`)
    -> ) DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.06 sec)
 
mysql> insert into test_autoincrement(value) values('sample-data...');
Query OK, 1 row affected (0.02 sec)
 
mysql> select last_insert_id() from test_autoincrement;
+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.02 sec)
 
mysql> insert into test_autoincrement(value) values('sample-data2...');
Query OK, 1 row affected (0.03 sec)
 
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                2 |
+------------------+
1 row in set (0.00 sec)
 
mysql>

1行目は、ログインコマンドです。-h=xxx -u=username -p=**** dbname

xxx:mysqlのホスト名
username:ログインするユーザ名
****:ログインするユーザのパスワード
dbname:使用するデータベース名

19行目,30行目で、直前にAUTO_INCREMENTで設定した情報を表示させています。
30行目の表現で、from table名をつけない場合でも、同じセッションの中で最新のものが取り出せるのでスレッドなどを使っていなければ問題はないと思います。
ただ、from table名をつけた方が間違いないです。






コメント

コメントをどうぞ








翻訳

最近の記事

カテゴリー

タグクラウド

execute remove フロントページ 投稿ページ トップページ install WIndows Note Convert META generator 日付 donwload file manage multibyte utf-8 unicode shiftjis euc console サイトマップ 問題 ParmaLink Redirect パーマリンク はみ出る pre テンプレート テーマ タグクラウド マルチランゲージ リダイレクト PHP(タグ) タグ table control HTML(タグ) コマンド 国際化(翻訳) SQLite(タグ) MySQL(タグ) qTranslate プラグイン(タグ) Wordpress(タグ)

リンク

このサイトは?

Joomla!,WordpressなどCMSを使ったサイト構築、サイト管理からソフトウェアの使用方法、開発環境までのヒントを記述します。

  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ