PlanetScale’s Vitess product is built on top of open-source Vitess, a database clustering system for horizontal scaling of MySQL. Consequently, PlanetScale is only compatible with MySQL databases.
PlanetScale databases run on MySQL 8. If you’re importing an existing database, PlanetScale supports MySQL database versions 5.7 through 8.0.New PlanetScale databases are created on MySQL 8 with character set utf8mb4_0900_ai_ci. PlanetScale supports utf8, utf8mb4, and utf8mb3, character sets. We also support latin1 and ascii character sets, but do not recommend them.
The following reference guide will cover some MySQL syntax, features, and more that PlanetScale either does not support or has limitations around. We are actively working on driving up compatibility, but it’s an ongoing effort and will take some time to complete. See this project board on GitHub to learn what the Vitess team is currently focusing on.If you’re attempting to import a database using our Import tool, there are some additional requirements that you can find in our Database imports documentation.
We do not support killing queries or shards from the command line.
:=
The := assignment operator is not yet supported.
SET GLOBAL time_zone
The global time zone is set to UTC and can not be modified.
SET GLOBAL sql_mode
The global SQL mode can not be changed permanently. Set each new session’s mode instead with SET sql_mode.
PIPES_AS_CONCAT
Enabling this SQL mode can interfere with Vitess’ evalengine parsing the SQL queries so enabling it may result in incorrect or unexpected results. Please use MySQL’s standard dialect instead, e.g. CONCAT().
ANSI_QUOTES
Enabling this SQL mode can interfere with Vitess’ evalengine parsing the SQL queries so enabling it may result in incorrect or unexpected results. Please use MySQL’s standard quotation instead.
WITH RECURSIVE
Experimental support for recursive common table expressions (CTEs) was introduced in Vitess 21 for SELECT queries.