【发布时间】:2022-01-04 03:17:54
【问题描述】:
我有一个语法错误,我不知道为什么?
CREATE OR REPLACE TABLE appointments (
AppId int(11)PRIMARY,
docID int(11),
patientID int(11),
AppStart datetime,
AppEnd datetime,
PERIOD FOR p(AppStart,AppEnd), /* <== Error on the `FOR` keyword. */
UNIQUE (docId, p WITHOUT OVERLAPS) /* <== Error on the `UNIQUE` keyword. */
)
【问题讨论】:
-
究竟你运行的是什么版本的 phpMyAdmin 和 MySQL?
-
您正在使用应用程序版本化临时表的语法,这是 MariaDB 10.4.3(及更高版本)支持但(据我所知)MySQL 不支持。所以你要么不使用临时表,要么安装 MariaDB 而不是 MySQL。
-
@Dai 服务器版本:10.4.10-MariaDB - mariadb.org 二进制分发版
-
FWIW,我尝试在 MariaDB 10.6 中按原样运行您的
CREATE TABLE语句,但我也遇到了语法错误,除了它在PRIMARY关键字上。如果将其更改为PRIMARY KEY,则操作成功并创建表。 -
我知道 phpMyAdmin 表面上是一个用于 MySQL 的瘦前端,应该与 MariaDB 一起使用,我不知道 phpMyAdmin 的 SQL 编辑器是否实现了自己的解析器/验证器或如果它始终只是服务器 SQL 引擎的前端。
标签: mysql sql phpmyadmin