Как создать уникальную строку в Google App Maker's Cloud SQL - PullRequest
0 голосов
/ 26 апреля 2018

Привет всем App Maker Gurus,

Я могу создать модель (например, отдел) в App Maker> Cloud SQL. И я знаю, как создать базовую модель, отдел с полями: код, имя, дата вступления в силу

например. Код / Имя / EffectiveDate ИТ / Информационные технологии / 1 января 2018 Информационные технологии и информационные технологии / 1 мая 2018 года

Я пытаюсь упомянуть, что с 1 мая 2018 года ИТ-отдел называется «Информационные технологии и технологии». Как я могу выполнить это, поскольку Мой «Код» теперь является Первичным ключом, и он не принимает другую строку из-за дублированного ключа? Уникальный ключ должен быть комбинацией Code + EffectiveDate.

Как настроить в Google App Maker?

Спасибо за руководство.

1 Ответ

0 голосов
/ 26 апреля 2018

Если у вас есть прямой доступ к базе данных, вы можете установить уникальное ограничение для нескольких столбцов :

ALTER TABLE `Department` ADD UNIQUE `unique_index`(`Code`, `EffectiveDate`);

Но, к сожалению, в настоящее время App Maker не поддерживает уникальные ограничения для нескольких полей, но вы можете применить его с помощью скрипта. Простейшая реализация, которая не обрабатывает параллелизм, будет:

// onBeforeSave model event
var query = app.models.Department.newQuery();

query.filters.Code._equals = record.Code;
query.filters.EffectiveDate._equals = record.EffectiveDate;

var records = query.run();

if (records.length > 0) {
  throw new Error('Duplicate entry');
}
...