mysql_query("IF(SELECT COUNT( * ) FROM`messages`) = 0 {
ALTER TABLE `messages` AUTO_INCREMENT = 1
}
IF(SELECT COUNT( * ) FROM`chats`) = 0 {
ALTER TABLE `chats` AUTO_INCREMENT = 1
}
IF((SELECT COUNT( * ) FROM`messages`) = 0 && (SELECT COUNT( * ) FROM`chats`)) {
ALTER TABLE `users` AUTO_INCREMENT = 1
}");
但它不正确
如果消息为空,我需要在消息中重置A_I,如果消息为空则重置A_I,如果消息和聊天是空的则在用户中重置A_I
我有自动增量ID,截断后它将从1开始计数
你有什么想法吗?
我需要一个查询来使用我编写的逻辑重置3个表中的自动增量
答案 0 :(得分:0)
试试这个:
ALTER TABLE `table` AUTO_INCREMENT = 1
顺便说一句,你有一个括号问题,你应该用括号括起你的条件。
IF ((SELECT COUNT( * ) FROM`chats`) = 0) {
答案 1 :(得分:0)
你把if放在php中怎么样:
$res1 = mysql_query("SELECT count(*) AS count FROM `messages`");
$row1 = mysql_fetch_object($res1);
if ($row1->count == 0) {
mysql_query("ALTER TABLE `messages` AUTO_INCREMENT = 1");
}
$res2 = mysql_query("SELECT count(*) AS count FROM `chats`");
$row2 = mysql_fetch_object($res2);
if ($row2->count == 0) {
mysql_query("ALTER TABLE `chats` AUTO_INCREMENT = 1");
}
if ($row1->count == 0 && $row2->count == 0) {
mysql_query("TRUNCATE TABLE `users`");
}