出于演示目的,我需要以ACCESS格式清空所有表" database.mdb"使用PHP然后将所有ID AUTO_INCREMENT重置为1,但是重置PRIMARY KEYS时遇到了问题。
重要的是我用PHP脚本做了所有事情。
我尝试过:
/* ConnString verso il database da compattare */
$oldConn="Provider=Microsoft.Jet.OLEDB.4.0;";
$oldConn.="Data Source=".$path.$olddb.";";
$oldConn.="Jet OLEDB:Database Password=$oldpass ;";
/* ConnString verso il nuovo database (compattato) */
$newConn="Provider=Microsoft.Jet.OLEDB.4.0;";
$newConn.="Data Source=".$path.$newdb.";";
$newConn.="Jet OLEDB:Database Password=$newpass ;";
$je=new COM("JRO.JetEngine") or die("Compact failed");
$je->CompactDatabase($oldConn,$newConn) ;
$je->Release() ;
$je= null ;
但我在使用CompactDatabase()时遇到错误。
我也试过PDO连接并且:
$pdo->exec("ALTER TABLE tbl AUTO_INCREMENT = 1");
或
$s = $pdo->prepare("ALTER TABLE tbl MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT");
但我明白了:Syntax error or access violation
还有其他办法吗?
答案 0 :(得分:0)
试试这个:
ALTER TABLE MyTable ALTER COLUMN MyColumn COUNTER(1,1)