小编Car*_*nks的帖子

PostgreSQL 中的外键过滤

我目前正在 PostgreSQL 中寻找一种方法,对于给定的表,我可以通过定义条件来限制可用的有效外键的数量。

所以场景是这样的

https://dbfiddle.uk/?rdbms=postgres_11&fiddle=4dbe279906dc8815​​98b7e72093534ce7

A、B、C 都代表不同的实体,每个具体的条目都列在 x_entry 表中。

表 A、B、C 都表示给定条目的版本,以及它们在什么时间跨度内有效。

我想确保表 A 始终具有 B 和 C 的外键,其中A.B.C == A.C时间跨度 A的条件。

如这里所见

在此处输入图片说明Ainit违反了 2000-3000 范围 的条件,因为binit在时间范围内2100-3000有一个外键cinot ,ainit 将其外键从 cinit 更改为cinat违反条件A.B.C == A.C

但是我如何设置这样的条件限制,以防止外键不违反这样的特定条件。? 甚至有可能吗?

postgresql constraints foreign-keys

6
推荐指数
1
解决办法
164
查看次数

与发布者和订阅者一起编写ros​​节点?

我目前正在尝试在具有订阅者和发布者的Python中制作ROS节点。

我已经看到了在回调中发布消息的示例,但是我希望它“不断地”发布消息,并在实际情况下执行回调。

这是我现在的做法:

#!/usr/bin/env python

import rospy
from std_msgs.msg import Empty
from std_msgs.msg import String
import numpy as np

pub = rospy.Publisher('/status', String, queue_size=1000)

def callback(data):
    print "Message received"

def listener():

    rospy.init_node('control', anonymous=True)

    rospy.Subscriber('control_c', Empty, callback)
    rospy.spin()

if __name__ == '__main__':
    print "Running"
    listener()
Run Code Online (Sandbox Code Playgroud)

那么我应该在哪里发布?

python ros

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

numpy.ndarray.tofile 在 x 个条目后带有断线?

我目前正在numpy.ndarray使用numpy.ndarray.tofile内置的函数传递存储在 a中的数据numpy.ndarray

此功能的问题是将所有数据输出在长线上,从而难以获得很好的数据概览。是否有可能让它输出 x 个条目然后创建一个新行然后继续或类似的东西?..

我可以打开一个文件,然后将其转换ndarray为 a string,但这也会导致一些格式问题,这就是我想用numpy.ndarray.tofile函数来做的原因

我在写入文件旁边有一个过程,可以将其转换为不同的格式。无法执行转换,因为它无法识别 [ 开始。

我收到错误消息:

Expected "[", got "[-0.32252067" File position at start is 142665, currently 142678
Run Code Online (Sandbox Code Playgroud)

但事实并非如此 tofile

python numpy

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

标签 统计

python ×2

constraints ×1

foreign-keys ×1

numpy ×1

postgresql ×1

ros ×1