在 AppMaker 中查询 Cloud SQL 时获取重复行
Getting duplicate rows when querying Cloud SQL in AppMaker
我从 Drive tables 迁移到第二代 MySQL Google Cloud SQL 数据模型。我能够在 AppMaker 中的以下问题 table 中插入 19 行:
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| SurveyType | varchar(64) | NO | PRI | NULL | |
| QuestionNumber | int(11) | NO | PRI | NULL | |
| QuestionType | varchar(64) | NO | | NULL | |
| Question | varchar(512) | NO | | NULL | |
| SecondaryQuestion | varchar(512) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
我在命令行查询了数据,知道是好的。但是,当我像这样在 AppMaker 中查询数据时:
var newQuery = app.models.Question.newQuery();
newQuery.filters.SurveyType._equals = surveyType;
newQuery.sorting.QuestionNumber._ascending();
var allRecs = newQuery.run();
我得到了 19 行具有相同数据的行(第一行),而不是 19 行不同的行。知道有什么问题吗?此外(可能相关)我在 AppMaker 中的列表行没有显示任何数据。我确实注意到记录中的 _key 设置不正确。
(编辑:我认为可能有两列作为主键是问题所在,但我尝试将 PK 设为单个标识列,结果相同。)
感谢任何提示或指点。
您的 table 中有两个主键字段,根据 App Maker Cloud SQL 文档,这是有问题的:https://developers.google.com/appmaker/models/cloudsql
App Maker can only write to tables that have a single primary key
field—If you have an existing Google Cloud SQL table with zero or
multiple primary keys, you can still query it in App Maker, but you
can't write to it.
这可能是视图无法正确显示每一行和正确设置 _key 的原因。
我能够通过在 AppMaker 中创建 table 而不是使用直接在 Cloud Shell 中创建的 table 来实现它。不确定现有的 table 是否不受支持,或者 AppMaker 中是否存在错误,但由于它正在运行,我将关闭它。
我从 Drive tables 迁移到第二代 MySQL Google Cloud SQL 数据模型。我能够在 AppMaker 中的以下问题 table 中插入 19 行:
+-------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| SurveyType | varchar(64) | NO | PRI | NULL | |
| QuestionNumber | int(11) | NO | PRI | NULL | |
| QuestionType | varchar(64) | NO | | NULL | |
| Question | varchar(512) | NO | | NULL | |
| SecondaryQuestion | varchar(512) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
我在命令行查询了数据,知道是好的。但是,当我像这样在 AppMaker 中查询数据时:
var newQuery = app.models.Question.newQuery();
newQuery.filters.SurveyType._equals = surveyType;
newQuery.sorting.QuestionNumber._ascending();
var allRecs = newQuery.run();
我得到了 19 行具有相同数据的行(第一行),而不是 19 行不同的行。知道有什么问题吗?此外(可能相关)我在 AppMaker 中的列表行没有显示任何数据。我确实注意到记录中的 _key 设置不正确。
(编辑:我认为可能有两列作为主键是问题所在,但我尝试将 PK 设为单个标识列,结果相同。)
感谢任何提示或指点。
您的 table 中有两个主键字段,根据 App Maker Cloud SQL 文档,这是有问题的:https://developers.google.com/appmaker/models/cloudsql
App Maker can only write to tables that have a single primary key field—If you have an existing Google Cloud SQL table with zero or multiple primary keys, you can still query it in App Maker, but you can't write to it.
这可能是视图无法正确显示每一行和正确设置 _key 的原因。
我能够通过在 AppMaker 中创建 table 而不是使用直接在 Cloud Shell 中创建的 table 来实现它。不确定现有的 table 是否不受支持,或者 AppMaker 中是否存在错误,但由于它正在运行,我将关闭它。