MySQLのauto_incrementの値を1に戻す方法

試験が終わってさあリリースだ、という時に全てをdeleteしても、auto_incrementのカウンタは戻らない。dropしてcreateし直すのはあまり現実的ではない。
大した実害はないと思うがどうにも気持ちが悪いぞ、という人は下記のようにしてカウントをリセットできる。

alter table <<tablename>> auto_increment=1;

数値を変更すれば、逆に大きな数値から始める事も可能。
参考:
MySQLで、auto_incrementの値をリセットする方法を教えて下さい… - 人力検索はてな

PHP+MySQLで、テーブルのレコード数を得る方法

次のSQL文でレコード数を数える事ができる。

select count(*) from <<tablename>>;

結果:

mysql> select count(*) from mytable;
+----------+
| count(*) |
+----------+
|      123 |
+----------+
1 row in set (0.01 sec)

これをPHPで利用する場合は以下のようにする。

// レコード数を調べる
$result = mysql_query("select count(*) from mytable", $link);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
print("<p>全 " . $row["count(*)"] . " 件登録されています。</p>");

SQL文にwhere句を付け加える事も可能。

MySQLに日本語が入らない

日本語をinsertするとwarningが出て、文字列の日本語出現場所以降が無視される。

mysql> insert into mytable values('ほげ');
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> show warnings;
+---------+------+-------------------------------------------+
| Level   | Code | Message                                   |
+---------+------+-------------------------------------------+
| Warning | 1265 | Data truncated for column 'hoge' at row 1 |
+---------+------+-------------------------------------------+
1 row in set (0.02 sec)

挿入先の型はvarchar(255)。インストール時にUTF-8をデフォルトで使用するようにしたはずなんだけど。
なんだろう。
以下追記(17:28)
UTF-8で書いたPHPからinsertしたところ、問題なくレコードが追加された。どうやらクライアントが悪かったらしい。
でもstatusでもshow valiablesでもクライアントのcharsetはutf8になっている。どういう事なんだろう。コマンドプロンプトが悪いのか?
2007/08/26 その後解決→MySQLクライアントから日本語を表示させたい - NEST :: laboratory