Mysqli的问题我无法解决

时间:2013-06-14 09:15:19

标签: php sql mysqli

问题1)

我想将所有结构和数据的表克隆到同一服务器上的另一个数据库

我想知道如何使用MYSQLi

复制它
 CREATE  TABLE  `insurance`.`GD14062013` (  `URN` varchar( 30  )  NOT  NULL ,
 `Title` varchar( 30  )  NOT  NULL ,
 `FirstName` varchar( 30  )  NOT  NULL ,
 `LastName` varchar( 30  )  NOT  NULL ,
 `ADD` varchar( 500  )  NOT  NULL ,
 `SUB` varchar( 100  )  NOT  NULL ,
 `STATE` varchar( 100  )  NOT  NULL ,
 `POSTCODE` varchar( 30  )  NOT  NULL ,
 `DPID` varchar( 30  )  NOT  NULL ,
 `LanLine` varchar( 30  )  NOT  NULL ,
 `Mobile` varchar( 30  )  NOT  NULL ,
 `DUP` varchar( 11  )  NOT  NULL ,
 KEY  `LanLine` (  `LanLine` ,  `Mobile`  )  ) ENGINE  = InnoDB  DEFAULT CHARSET  = latin1;

SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

INSERT INTO `insurance`.`GD14062013` SELECT * FROM `GDMASTER`.`GD14062013`;

问题2) 在我不再需要它之后,我想要删除aka alter columns。

THIS WORKS
$query = "ALTER TABLE  `$table` ADD  `primary` VARCHAR( 10 ) NOT NULL";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` ADD  `alternitive` VARCHAR( 10 ) NOT NULL";
$mysqli->query($query); 

This Does NOT
    $query = "ALTER TABLE  `$table` DROP  `primary` VARCHAR( 10 ) NOT NULL";
    $mysqli->query($query); 
    $query = "ALTER TABLE  `$table` DROP  `alternitive` VARCHAR( 10 ) NOT NULL";
    $mysqli->query($query);         

2 个答案:

答案 0 :(得分:0)

尝试:

$query = "ALTER TABLE  `$table` DROP  `primary`";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` DROP  `alternitive`";
$mysqli->query($query);         

删除时无需传递列数据类型。

MySQL ALTER TABLE specyfication

ALTER TABLE tbl_name
    DROP [COLUMN] col_name

答案 1 :(得分:0)

不应该是

$query = "ALTER TABLE  `$table` DROP COLUMN  `primary`";
$mysqli->query($query); 
$query = "ALTER TABLE  `$table` DROP COLUMN `alternitive`";
$mysqli->query($query); 

记下DROP COLUMN。表中还有其他部分可以删除以便更改。即COLUMNINDEXPRIMARY KEYFOREIGN KEY

请参阅altering tables上的MySQL手册。