Re: Trying to add primary key to existing database.

From: Date: Sun, 04 Feb 2007 22:46:56 +0000
Subject: Re: Trying to add primary key to existing database.
References: 1  Groups: php.db 
Request: Send a blank email to php-db+get-43026@lists.php.net to get a copy of this message
Christopher Blöcker wrote:
hehe, ok i would write a script that reads the existing data from the table and inserts it into a new one that has the same structure PLUS a primary key something like:
original_table:    name, description, whatever
new_table:        id, name, description, whatever
where id is primary key and auto_increment then <? if ($link=mysql_connect("host","user","pw") { mysql_select_db("the_correct_database); $result=mysql_query("SELECT * FROM original_table"); while (list($name,$description,$whatever) = mysql_fetch_row($result)) { mysql_query("INSERT INTO new_table (name,description,whatever) VALUES ($name,$description,$whatever)"); //that should add the id automatically } mysql_close($link) ?> then you can drop the original_table and rename the new_table to original_table i don't know if there's a better, more simple solution and i hope i did not forget anything important and it works this way
Good idea but you can put that all into one step and leave php out altogether: insert into table (f1, f2, f3) select f1,f2,f3 from other_table; See http://dev.mysql.com/doc/refman/4.1/en/insert-select.html (Nice bonus - this is sql standard so it works across a lot of different db's). -- Postgresql & php tutorials http://www.designmagick.com/

« previous php.db (#43026) next »