私はデータベースを取り、バックアップとしてデータベースのクエリのようなエクスポートを生成するスクリプトを持っています。私は目的のためにこのスクリプトが必要です。私のPHPコードは:PHPでmysqlテーブル構造を取得
mysql_query("SHOW CREATE TABLE `myTable`");
データベースには17のテーブルがあります。私はすべての17のテーブルのforループを実行しています。私は望んでいない外部キーを使用してテーブル作成クエリを取得します。外字キーのためにlike-
CREATE TABLE `customers` (
`person_id` int(10) NOT NULL,
`account_number` varchar(255) DEFAULT NULL,
`taxable` int(1) NOT NULL DEFAULT '1',
`deleted` int(1) NOT NULL DEFAULT '0',
UNIQUE KEY `account_number` (`account_number`),
KEY `person_id` (`person_id`),
CONSTRAINT `customers_ibfk_1` FOREIGN KEY (`person_id`) REFERENCES `people` (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
を返します。テーブルの作成時にクエリを実行するとエラーが発生します。外部キーなしでSQLを取得する方法はありますか? like-
CREATE TABLE IF NOT EXISTS `customers` (
`person_id` int(10) NOT NULL,
`account_number` varchar(255) DEFAULT NULL,
`taxable` int(1) NOT NULL DEFAULT '1',
`deleted` int(1) NOT NULL DEFAULT '0',
UNIQUE KEY `account_number` (`account_number`),
KEY `person_id` (`person_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
はすでにそこにあるDBのバックアップツールのいずれかを調査している:あなたは本当に、次のコードを使用することができる
CREATE TABLE
文から制約を削除したい場合は、それが$createSql
がCREATE TABLE
SQL文が含まれていることを前提としてい車輪を再発明しようとするよりも? mysqldumpやmysqlhotcopyなどのプログラムとともに、MySQLのネイティブレプリケーションをバックアップに使用できます。 – liquorvicar