thanks
may you point out which chapter says?
From manual I get the following answer agaist to my result(my server
version 5.0.45),
For |InnoDB| before version 5.0.3, |TRUNCATE TABLE| is mapped to
|DELETE|, so there is no difference. Starting with MySQL 5.0.3, fast
|TRUNCATE TABLE| is available. However, the operation is still mapped to
|DELETE| if there are foreign key constraints that reference the table.
(When fast truncate is used, it resets any |AUTO_INCREMENT| counter.
From MySQL 5.0.13 on, the |AUTO_INCREMENT| counter is reset by
|TRUNCATE TABLE|, regardless of whether there is a foreign key constraint.)
The table handler does not remember the last used |AUTO_INCREMENT|
value, but starts counting from the beginning. This is true even for
|MyISAM| and |InnoDB|, which normally do not reuse sequence values.
See:
http://dev.mysql.com/doc/refman/5.0/en/truncate.html
http://dev.mysql.com/doc/refman/5.1/en/truncate.html
Sebastian Mendel 写道:
> 过客 schrieb:
>
>> [...] why in procedure TRUNCATE table
>> demo do not reset auto_increment?
>>
>
> is clearly written in the documentation, just read ...
>
> in short:
>
> auto_increment is used for primary key, primary keys could be referenced
> from another table, setting auto_increment back to 0 could lead to using a
> primary key formerly used by another datarow and still referenced by another
> table - could lead to data inconsistency.
>
>