0
当我做import foreign schema constructor from server mysql_svr into mysql_fdw;
我得到:如何获取由IMPORT FOREIGN SCHEMA生成的SQL?
ERROR: type "set" does not exist
LINE 6: type set NOT NULL,
^
QUERY: CREATE FOREIGN TABLE search_requests (
id int NOT NULL,
ctime timestamp NOT NULL,
site_id int NOT NULL,
query_id int NOT NULL,
type set NOT NULL,
page smallint NOT NULL
) SERVER mysql_svr OPTIONS (dbname 'constructor', table_name 'search_requests');
CONTEXT: importing foreign table "search_requests"
源表是:
CREATE TABLE `search_requests` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`ctime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`site_id` int(11) NOT NULL,
`query_id` int(10) unsigned NOT NULL,
`type` set('content','catalog','gallery') NOT NULL,
`page` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `site` (`site_id`)
) ENGINE=InnoDB AUTO_INCREMENT=391 DEFAULT CHARSET=utf8
可能我得到进口外国模式生成SQL让所有修补程序和手动运行呢?
mysql_fdw尝试做'DO $$ BEGIN IF NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type WHERE typname ='type_t')然后CREATE TYPE type_t AS enum('content','catalog','gallery');万一; END $$;'但是它应该使用'type_t'而不是'set'。是的,它看起来像一个错误,但我不确定。 –
@EugenKonkov然后'type_t'就是这个类型的*枚举部分*。 PostgreSQL根本没有'set'类型,最接近的将是'type_t []'('type_t'枚举的一个数组,可能允许重复,不像'set'),但是我不确定外国包装可以处理这种映射。我最好的选择是保留“文本”(尽管我无法测试自己);与此同时,您可以将设置读为逗号分隔值。我不确定''set'是否受到'mysql_fdw'的支持(因为它在PostgreSQL中没有直接的对)。 – pozs