此脚本位于PostgreSQL中。我想将它转换为MySQL,我该如何完成它?
CREATE TABLE language_history (
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
active boolean,
jsondata varchar(255),
polymorphic_type varchar(20),
id varchar(255),
name varchar(255),
description varchar(255),
markup_description varchar(255),
latitude double precision,
longitude double precision,
version int NOT NULL,
CONSTRAINT language_history_latitude_check CHECK (((((-90))::double precision <= latitude) AND (latitude <= (90)::double precision))),
CONSTRAINT language_history_longitude_check CHECK (((((-180))::double precision <= longitude) AND (longitude <= (180)::double precision)))
);
答案 0 :(得分:1)
试试这个
CREATE TABLE language_history (
pk int NOT NULL AUTO_INCREMENT PRIMARY KEY,
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
active bool,
jsondata varchar(255),
polymorphic_type varchar(20),
id varchar(255),
name varchar(255),
description varchar(255),
markup_description varchar(255),
latitude double precision,
longitude double precision,
version int NOT NULL
) TYPE=MyISAM;
答案 1 :(得分:1)
GHCi> nicerComposed ["alice","bob","david"]
["ecila","divad"]
首先,这不是一个非常好的postgres表设计。你遇到麻烦的这些限制是穷人对postgis的优秀Geography type的实施。
上述约束的作用是确保在lat,lng列中输入的值在地理纬度和经度的有效范围内。 (地理类型默认为您执行此操作并为您提供许多其他功能)。
在mysql中最简单的方法是创建没有约束的表。其次,您可以使用mysql geometry类型,但它不会自动为您提供数据验证。
将在postgresql表中重现约束的第三个选项是使用BEFORE INSERT触发器。在这种情况下,添加没有约束的表,然后在插入之前编写触发器以验证数据。