【问题标题】:Getting duplicate rows when querying Cloud SQL in AppMaker在 AppMaker 中查询 Cloud SQL 时获取重复行
【发布时间】:2017-03-21 21:18:24
【问题描述】:

我从云端硬盘表迁移到第二代 MySQL Google Cloud SQL 数据模型。我能够在 AppMaker 的以下问题表中插入 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 设为单个标识列,结果相同。)

感谢任何提示或指示。

【问题讨论】:

    标签: google-cloud-sql google-app-maker


    【解决方案1】:

    您的表中有两个主键字段,根据 App Maker Cloud SQL 文档,这是有问题的:https://developers.google.com/appmaker/models/cloudsql

    应用制作工具只能写入具有单个主键的表 field - 如果您现有的 Google Cloud SQL 表包含零或 多个主键,你仍然可以在应用制作工具中查询,但你 无法写入。

    这可能导致视图无法正确显示每一行并正确设置_key。

    【讨论】:

    • 对不起,直到我编辑我的问题后才看到你的答案。我确实怀疑这一点,但我得到与 PK 相同的单列结果。此外,我(奇怪地)能够用两列作为 PK 很好地写入表,这只是问题所在。
    • 当您创建页面和表格小部件并且不使用查询(仅将 SQL 表格作为数据源)时,表格是否在应用制作工具中正常工作?
    • 另外,当你说“当我在 AppMaker 中查询数据时”时,查询是在哪里完成的,在页面上还是在模型的数据源查询上?
    • 好吧,创建测试表会产生相同的结果,因为调用的是相同的查询脚本。显然它是在数据源的查询中完成的。
    【解决方案2】:

    我能够通过在 AppMaker 中创建表而不是使用直接在 Cloud Shell 中创建的表来实现这一点。不确定是否不支持现有表或 AppMaker 中是否存在错误,但由于它正在工作,我将关闭它。

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 2011-07-01
      • 2018-02-09
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      相关资源
      最近更新 更多