Не удалось сохранить запись AppMaker: требуется значение поля «id», но найдено «null». (автоматическое приращение)

У меня есть модель с автоинкрементом, требующим int 'id'. И когда я пытаюсь создать новую запись из серверного скрипта, я получаю 'id' field value is required, but found 'null'.

Это правда, я не устанавливаю это поле. Потому что я предполагаю, что он будет установлен экземпляром Cloud SQL, стоящим за этим.

Я делаю неправильно?

[РЕДАКТИРОВАТЬ]

У меня есть другие таблицы с такой же структурой (требуется автоинкремент int id), и они прекрасно работают. Установка 0 в качестве значения по умолчанию для этого поля произвела Error: MySQL does not support zeros as the value of an auto-increment field. Настройка 1 просто заменила мою предыдущую запись с id=1.

Что-то я не сказал сначала: в моем приложении эта таблица была представлением, и поэтому я не мог создавать для нее записи из appmaker (и id не был ни первичным ключом, ни автоинкрементом). Я изменил схему базы данных, теперь таблица является правильной таблицей, а поле id — правильным идентификатором.
Я внес изменения в свой экземпляр Cloud SQL, а затем в AppMaker обновил приложение, чтобы оно соответствовало базе данных.

Может проблема оттуда?

Спасибо


person Valentin Coudert    schedule 13.06.2017    source источник


Ответы (2)


Конструктор приложений поддерживает автоинкремент только для поля первичного ключа. Другие поля должны иметь ненулевое значение при создании записи, если они помечены как обязательные.

Если параметр NO_AUTO_VALUE_ON_ZERO отключен (по умолчанию) для БД, попробуйте установить для поля значение по умолчанию «0» (в дополнительных настройках поля).

person Vasyl Petrushko    schedule 13.06.2017

Создавая новую запись, производитель приложений автоматически сгенерирует запись в таблицу. Без значения по умолчанию он вернет сообщение об ошибке.

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

person Pin    schedule 16.07.2017
comment
Кажется, вы говорите о внешнем коде, я на стороне сервера (поэтому я сохраняю вручную) - person Valentin Coudert; 17.07.2017