Для демонстрации, мне нужно после очистки всех таблиц в моем формате ACCESS «database.mdb» с использованием PHP, а затем сбросить все идентификаторы AUTO_INCREMENT на 1, но у меня проблемы с сбросом ПЕРВИЧНЫХ КЛЮЧЕЙ.
Важно, чтобы я все делал с помощью скрипта 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
Есть ли другой способ сделать это?
попробуй это:
ALTER TABLE MyTable ALTER COLUMN MyColumn COUNTER(1,1)
Других решений пока нет …