1

私はこれに数時間取り組んでいて、拘束されています。できれば私を助けてください、私はそれをいただければ幸いです...

小さなワードプレスデータベース移行プロジェクトのために、一連のmysqlステートメントをsql server2008expressに変換しようとしています。MSSQLデータベースのプロではありません...

ステートメントの大部分を変換しましたが、mySQLステートメントの下部にあるテーブルインデックスステートメントの処理方法についてサポートが必要です。それらをSQLServer互換ステートメントに変換するにはどうすればよいですか?:

mySQLステートメント:

DROP TABLE IF EXISTS `wp_pollsip`;
CREATE TABLE IF NOT EXISTS `wp_pollsip` (
  `pollip_id` int(10) NOT NULL AUTO_INCREMENT,
  `pollip_qid` varchar(10) NOT NULL DEFAULT '',
  `pollip_aid` varchar(10) NOT NULL DEFAULT '',
  `pollip_ip` varchar(100) NOT NULL DEFAULT '',
  `pollip_host` varchar(200) NOT NULL DEFAULT '',
  `pollip_timestamp` varchar(20) NOT NULL DEFAULT '0000-00-00 00:00:00',
  `pollip_user` tinytext NOT NULL,
  `pollip_userid` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`pollip_id`),
  KEY `pollip_ip` (`pollip_id`),
  KEY `pollip_qid` (`pollip_qid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- Dumping data for table .wp_pollsip: ~5 rows (approximately)
DELETE FROM `wp_pollsip`;
/*!40000 ALTER TABLE `wp_pollsip` DISABLE KEYS */;
INSERT INTO `wp_pollsip` (`pollip_id`, `pollip_qid`, `pollip_aid`, `pollip_ip`, `pollip_host`, `pollip_timestamp`, `pollip_user`, `pollip_userid`) VALUES
(1, '1', '1', '11.11.11.11', 'isp-here', '1344836172', 'admin', 1),
(2, '2', '6', '11.11.11.11', 'isp-here', '1344836700', 'admin', 1),
(3, '3', '9', '11.11.11.11', 'isp-here', '1344963379', 'Guest', 0),
(4, '4', '12', '11.11.11.11', 'isp-here', '1345136711', 'admin', 1),
(5, '4', '14', '11.11.11.11', 'isp-here', '1345171584', 'Guest', 0);
/*!40000 ALTER TABLE `wp_pollsip` ENABLE KEYS */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

これまでのMSSQL:

-- Dumping structure for table .wp_pollsip
IF OBJECT_ID('wp_pollsip','U') IS NOT NULL DROP TABLE wp_pollsip;
CREATE TABLE wp_pollsip (
  pollip_id bigint NOT NULL IDENTITY,
  pollip_qid varchar(10) NOT NULL DEFAULT '',
  pollip_aid varchar(10) NOT NULL DEFAULT '',
  pollip_ip varchar(100) NOT NULL DEFAULT '',
  pollip_host varchar(200) NOT NULL DEFAULT '',
  pollip_timestamp varchar(20) NOT NULL DEFAULT '0000-00-00 00:00:00',
  pollip_user char(256) NOT NULL,
  pollip_userid int NOT NULL DEFAULT '0',
  --PRIMARY KEY (pollip_id),
  --KEY pollip_ip (pollip_id),
  --KEY pollip_qid (pollip_qid)
);

-- Dumping data for table .wp_pollsip: ~5 rows (approximately)
DELETE FROM wp_pollsip;
/*!40000 ALTER TABLE wp_pollsip DISABLE KEYS */;
INSERT INTO wp_pollsip (pollip_qid, pollip_aid, pollip_ip, pollip_host, pollip_timestamp, pollip_user, pollip_userid) VALUES
('1', '1', '11.11.11.11', 'isp-here', '1344836172', 'admin', 1),
('2', '6', '11.11.11.11', 'isp-here', '1344836700', 'admin', 1),
('3', '9', '11.11.11.11', 'isp-here', '1344963379', 'Guest', 0),
('4', '12', '11.11.11.11', 'isp-here', '1345136711', 'admin', 1),
('4', '14', '11.11.11.11', 'isp-here', '1345171584', 'Guest', 0);
/*!40000 ALTER TABLE wp_pollsip ENABLE KEYS */;

これが理にかなっていることを願っています、ありがとう。

4

1 に答える 1

1

MSSQL では通常、主キーを除いて明示的にインデックスを作成します。

IF OBJECT_ID('wp_pollsip','U') IS NOT NULL DROP TABLE wp_pollsip;

CREATE TABLE wp_pollsip (
  pollip_id bigint NOT NULL IDENTITY primary key,
  pollip_qid varchar(10) NOT NULL DEFAULT '',
  pollip_aid varchar(10) NOT NULL DEFAULT '', 
  pollip_ip varchar(100) NOT NULL DEFAULT '',
  pollip_host varchar(200) NOT NULL DEFAULT '',
  pollip_timestamp varchar(20) NOT NULL DEFAULT '0000-00-00 00:00:00',
  pollip_user char(256) NOT NULL,
  pollip_userid int NOT NULL DEFAULT '0',
);

create index idx_wp_pollsip_gid on wp_pollsip(pollip_gid);

pollip_id は主キーとして宣言されているため、インデックスを作成する必要はありません。

于 2012-08-20T02:10:26.553 に答える