相关疑难解决方法(0)

如何在SQL表中插入默认值?

我有这样一张桌子:

create table1 (field1 int,
               field2 int default 5557,
               field3 int default 1337, 
               field4 int default 1337)
Run Code Online (Sandbox Code Playgroud)

我想插入一个具有field2和field4默认值的行.

我已经尝试insert into table1 values (5,null,10,null)但它不起作用ISNULL(field2,default)也不起作用.

当我插入行时,如何告诉数据库使用列的默认值?

t-sql default insert

64
推荐指数
5
解决办法
14万
查看次数

如何在执行批量插入光滑3.x时省略列值?

我有一个JOURNAL表,其中INSERT_DATE列应由DB填充,插入记录时的当前日期和时间.我没有故意使用TIMESTAMP类型,因为它的范围有限.

class Journal(tag: Tag) extends Table[JournalEntry](tag, "JOURNAL") { 
   def id = column[Int]("ID", O.PrimaryKey, O.AutoInc)
   def insertDate = column[OffsetDateTime]("INSERT_DATE", SqlType("DateTime default CURRENT_TIMESTAMP"))(localDateTimeColumnType)
   def valueDate = column[OffsetDateTime]("VALUE_DATE", SqlType("DateTime"))(localDateTimeColumnType)
   def amount = column[Int]("AMOUNT")
   def note = column[String]("NOTE", O.Length(100))

   def * : ProvenShape[JournalEntry] = (id.?, insertDate.?, valueDate, amount, note) 
     <> ((JournalEntry.apply _).tupled, JournalEntry.unapply)
}
Run Code Online (Sandbox Code Playgroud)

我还实现了一个case类:

case class JournalEntry(id: Option[Int], insertDate: Option[LocalDateTime], 
  valueDate: LocalDateTime, amount: Int, note: String)
Run Code Online (Sandbox Code Playgroud)

当我的应用程序启动时,我使用随机测试数据填充数据库:

TableQuery[Journal] ++= Seq.fill(1000)(JournalEntry(None, Some(LocalDateTime.now()), 
   LocalDateTime.of(2006 + Random.nextInt(10), 1 + Random.nextInt(11), 
   1 + Random.nextInt(27),Random.nextInt(24), Random.nextInt(60)), Random.nextInt(),
   TestDatabase.randomString(100))) …
Run Code Online (Sandbox Code Playgroud)

scala slick-3.0

5
推荐指数
1
解决办法
521
查看次数

标签 统计

default ×1

insert ×1

scala ×1

slick-3.0 ×1

t-sql ×1