【发布时间】:2016-04-18 10:54:47
【问题描述】:
我正在使用 MySQL 数据库和 Play Framework 在 scala 上做一个应用程序,我需要将值插入到表“entite”中,在这个表中我需要检查其他表“intervalle_date”中的 ID 并插入到我的表中“entite”,如果该 ID 存在,如果它不存在,我需要在我的表“intervalle_date”中创建它,并在插入“entite”之后。
所以我做了第一个请求来检查是否存在:
var intervalle_date_id = SQL(
"""select id from intervalle_date where date_text_debut={date_text_debut} && date_text_fin={date_text_fin}""").on(
'date_text_debut -> value._9, 'date_text_fin->value._10).as(scalar[Long].singleOpt)
在我检查该 var 是否为 NULL 并且如果它为 null 我创建它之后:
if(intervalle_date_id == null)
{
SQL(""" insert into intervalle_date(date_text_debut, date_text_fin) values ({date_text_debut}, {date_text_fin})""").on(
'date_text_debut -> value._9,
'date_text_fin -> value._10).executeInsert(scalar[Long].single)
var intervalle_date_id = SQL(
"""select id from intervalle_date where date_text_debut={date_text_debut} && date_text_fin={date_text_fin}""").on(
'date_text_debut -> value._9, 'date_text_fin->value._10).as(scalar[Long].singleOpt)
}
最后我在实体上插入:
SQL(""" insert into entite(entite_type, id_metier, id_service, regles, niveau_detail,
niveau_avancement, sources, licence_id, intervalle_date_id,
utilisateur_id) values({entite_type}, {id_metier}, {id_service}, {regles}, {niveau_detail},
{niveau_avancement}, {sources}, {licence_id}, {intervalle_date_id}, {utilisateur_id})
""").on(
'entite_type -> value._1,
'id_metier -> value._2,
'id_service -> value._3,
'regles -> value._4,
'niveau_detail -> value._5,
'niveau_avancement -> value._6,
'sources -> value._7,
'licence_id -> value._8,
'intervalle_date_id -> intervalle_date_id,
'utilisateur_id -> value._11).executeInsert(scalar[String].single)
但是当我运行它时,我有这个错误: [MySQLIntegrityConstraintViolationException:列'intervalle_date_id'不能为空]
我明白了,但我不知道为什么“intervalle_date_id”是NULL?
感谢您的帮助
【问题讨论】:
标签: mysql scala playframework