Convert MySQL to PostgreSQL online
Paste MySQL SQL (a CREATE TABLE or a query) and get the PostgreSQL equivalent. The conversions that usually bite are handled: AUTO_INCREMENT becomes GENERATED BY DEFAULT AS IDENTITY, TINYINT(1) becomes BOOLEAN (with its default), ENUM becomes VARCHAR with a CHECK, unsigned integers go up one size so the range still fits, inline KEY indexes become separate CREATE INDEX statements, and ENGINE=/CHARSET= options are dropped.
Converted on the server, discarded after the response.
Example
CREATE TABLE `product` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`sku` VARCHAR(40) NOT NULL,
`name` VARCHAR(200) NOT NULL,
`price` DECIMAL(12, 2) NOT NULL,
`in_stock` TINYINT(1) NOT NULL DEFAULT 1,
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_product_sku` (`sku`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE "product" (
"id" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"sku" VARCHAR(40) NOT NULL,
"name" VARCHAR(200) NOT NULL,
"price" DECIMAL(12, 2) NOT NULL,
"in_stock" BOOLEAN NOT NULL DEFAULT TRUE,
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ("id"),
CONSTRAINT "uq_product_sku" UNIQUE (
"sku"
)
);