MySQL How к INSERT INTO [временная таблица] ИЗ [Хранимой процедуры]

Поскольку featureType является необязательным, вы должны добавить ? или !, поскольку ошибка говорит

someDict["featureType"] = featureType?.rawValue ?? "" 

. ] из словаря и ключ не существует, потому что нет дела "".

На самом деле целью перечисления является то, что значение всегда является одним из случаев. Если вам нужен неопределенный случай, добавьте none или unknown или аналогичный.

Это безопасная версия

enum ChatFeatureType: String {
     case none, tenants, leaseholders, residents
}

class Chat {

   var featureType: ChatFeatureType

   init(featureType: ChatFeatureType = .none)
       self.featureType = featureType
   }

   //download data from firebase
   init(dictionary : [String : Any]) {
       featureType = ChatFeatureType(rawValue: dictionary["featureType"] as? String) ?? .none
   }

   func toDictionary() -> [String : Any] {

      var someDict = [String : Any]()
      someDict["featureType"] = featureType.rawValue
      return someDict
  }
}
17
задан Community 23 May 2017 в 12:02
поделиться

2 ответа

Проблема, Хранимые процедуры действительно не возвращают вывод непосредственно. Они могут выполнить избранные операторы в сценарии, но не иметь никакого возвращаемого значения.

MySQL называет хранимые процедуры через CALL StoredProcedureName(); И Вы не можете предписать, чтобы произвел к чему-либо, поскольку они ничего не возвращают (в отличие от функции).

MySQL Call Command

11
ответ дан 30 November 2019 в 13:13
поделиться

Моя первая реакция была, "Который походит на представление мне". Разве это не абстрагирует его достаточно, таким образом, можно просто добавить изменчивость в SP на случай?

Что-либо, что добавляет временную таблицу, которая иначе не была бы, существует вероятный антишаблон.

5
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: