小编Chr*_*ach的帖子

光滑 - 将一行插入与自动递增键链接的两个表中?

我是Slick的新手,并努力为以下内容找到一个好的规范示例.

我想在两个表中插入一行.第一个表有一个自动递增的主键.第二个表通过其主键与第一个表相关.

所以我想:

  1. 开始交易
  2. 在表1中插入一行,生成一个键
  3. 在表2中插入一行,并在上一步中生成外键
  4. 结束事务(如果失败则回滚步骤2和3)

请欣赏以上逻辑的规范示例,以及下面我的定义的任何相关建议(我对Slick来说很新!).谢谢!

插入表1的逻辑

private def insertAndReturn(entry: Entry) = 
  entries returning entries.map(_.id) 
  into ((_, newId) => entry.copy(id = newId))

def insert(entry: Entry): Future[Entry] =
  db.run(insertAndReturn(entry) += entry)
Run Code Online (Sandbox Code Playgroud)

(类似于表2)

表格1

class EntryTable(tag: Tag) extends Table[Entry](tag, "tblEntry") {
  def id = column[EntryId]("entryID", O.PrimaryKey, O.AutoInc)
  ... 

  def * = (id, ...).shaped <> (Entry.tupled, Entry.unapply)
}
Run Code Online (Sandbox Code Playgroud)

表2

class UsernameChangeTable(tag: Tag) extends Table[UserNameChange](tag, "tblUserNameChange") {
  def entryId = column[EntryId]("entryID")
  ...

  def entry = foreignKey("ENTRY_FK", entryId, entryDao.entries)(
    _.id, onUpdate = Restrict, …
Run Code Online (Sandbox Code Playgroud)

scala foreign-keys auto-increment slick

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

Neo4J Cypher:确保存在约束(如果已经存在,则避免错误)

在应用程序启动时,我想确保存在索引和约束。

当我在应用程序启动时调用以下内容时,由于约束已经存在,我收到一个错误:

CREATE CONSTRAINT ON (node:MyLabel) ASSERT node.myProperty IS UNIQUE
Run Code Online (Sandbox Code Playgroud)

我想确保约束存在而不会抛出错误。

有没有办法在 Cypher 中做到这一点?我正在努力在 Neo4J 文档中找到任何帮助。

neo4j cypher

4
推荐指数
1
解决办法
937
查看次数

从ObjectID中提取日期的投影

我想做这样的事情:

db.users.find({}, {name: 1, 'timestampFrom(_id)': 1})
Run Code Online (Sandbox Code Playgroud)

这样我就可以看到针对用户名的创建时间戳

有没有办法从投影中的ObjectID中提取时间戳?

mongodb

3
推荐指数
1
解决办法
1209
查看次数

简化ansible文件检查?

在ansible中,我做了很多这样的事情:

- name: Check if [someFile] exists on host
  stat: path=[someFile]
  register: someFile

- fail: msg="[someFile] not found"
  when: someFile.stat.exists == False
Run Code Online (Sandbox Code Playgroud)

我希望能够更简洁地表达它。像这样的东西:

- fail_on_missing_file: 
  path: [someFile]
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?

ansible ansible-playbook

3
推荐指数
1
解决办法
1054
查看次数

if/else coffeescript中的简写?

if myString then myString else ""
Run Code Online (Sandbox Code Playgroud)

......感觉有点冗长.

我可以使用更短的替代品吗?

myString 可以是undefined或字符串.

coffeescript

1
推荐指数
2
解决办法
6554
查看次数