2017-06-13 3 views
0

私は必要な自動インクリメントint 'id'を持つモデルを持っています。サーバースクリプトから新しいレコードを作成しようとすると、'id' field value is required, but found 'null'になります。AppMakerレコードの保存に失敗しました: 'id'フィールドの値は必須ですが、 'null'が見つかりました。 (自動インクリメント)

私はこのフィールドを設定しません。なぜなら、その背後にあるCloud SQLインスタンスによって設定されると仮定しているからです。

私は間違っていますか?

[EDIT]

私は同じ構造(必要なint型id自動増加)と他のテーブルを持っており、彼らはうまく動作します。このフィールドに0をデフォルト値として設定すると、Error: MySQL does not support zeros as the value of an auto-increment fieldが生成されます。設定1はid = 1の私の前のレコードを置き換えました。

私のアプリでは、このテーブルはビューであったため、appmakerからレコードを作成できませんでした(idはプライマリキーでも自動インクリメントでもありませんでした)。データベーススキーマを変更しました。テーブルは適切なテーブルになりました。idフィールドは適切なIDです。
Cloud SQLインスタンスで変更を加え、AppMakerからデータベースと一致するようにアプリケーションを更新しました。

そこから問題がありますか?

おかげ

答えて

1

アプリのメーカーは、プライマリキーフィールドの自動インクリメントをサポートしています。 必要に応じてマークされている場合、レコード作成時にnull以外の値を持つ必要があるその他のフィールド。

DBのNO_AUTO_VALUE_ON_ZEROがオフ(デフォルト)の場合、フィールドの詳細設定では、フィールドのデフォルト値を "0"にしてください。

+0

私の編集を参照してください。ありがとう –

0

新しいレコードを作成すると、app makerはレコードをテーブルに自動生成します。デフォルト値を指定しないと、エラーメッセージが返されます。

データソースに手動保存モードを設定すると、このエラーメッセージが表示されます。その後、Savechangesを呼び出してレコードを保存する必要があります。 ほしいと思っています。

+0

あなたはフロントサイドコードについて話しているようですが、私はサーバー側です(手動で保存します) –

関連する問題