繁体   English   中英

Google Cloud Spanner - 无法使用REST API创建表

[英]Google Cloud Spanner - Unable to create table with REST API

我正在尝试使用REST API在Cloud Spanner数据库中远程创建表。 我试图运行的SQL是:

CREATE TABLE test (id INT64 NOT NULL) PRIMARY KEY (id)

我的初始尝试使用了executeSql端点,这导致了一条不太有用的错误消息:

Syntax error: Expected \")\" or \",\" but got keyword NOT [at 1:29]\nCREATE TABLE test (id INT64 NOT NULL) PRIMARY KEY (id)\n

过了一会儿,我发现了updateDdl端点但是当我通过在语句列表中提供上述查询来尝试这个时,我只得到一个空的200响应并且没有创建表。

如何使用SQL在Cloud Spanner上创建表?

更新

事实证明我做的一切都是正确的,除了我的代码中的错误意味着我没有发送PATCH请求,我发送了一个GET请求! 在这种情况下,扳手乐于返回200,而不是返回405,但没有做任何事情:(

updateDdl是正确的方法调用。 注意,如果200响应,它将返回一个长时间运行的操作,因为模式更改不是瞬时的:

返回的长时间运行操作将具有格式/ operations /的名称,并可用于跟踪模式更改的执行。 元数据字段类型是UpdateDatabaseDdlMetadata。 该操作没有响应。

看起来REST API最后排除了分号:

PATCH https://spanner.googleapis.com/v1/projects/YOUR_PROJECT/instances/YOUR_INSTANCE/databases/YOUR_DATABASE/ddl

{
  "statements": [
    "CREATE TABLE Tests (TestId INT64 NOT NULL,) PRIMARY KEY(TestId)"
  ]
}

您还可以通过云控制台中的UI创建架构。

试试跑步

CREATE TABLE Tests (
    TestId INT64 NOT NULL,
) PRIMARY KEY(TestId);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM