gpt4 book ai didi

mysql - 扩展元数据

转载 作者:行者123 更新时间:2023-11-29 11:17:21 24 4
gpt4 key购买 nike

kdb/q 中的 meta 函数返回有关表的以下信息:

  1. c –(符号)列名称
  2. t –(字符)数据类型
  3. f –(符号)外键域
  4. a -(符号)属性。

我想扩展它以包含有关该表的更多信息。我试图解决的具体情况是在表中包含有关时间数据列的时区信息。

例如:从价格中选择

+-------------------------+-------------------------+--------+-------+
| Time | SysTime | Ticker | Price |
+-------------------------+-------------------------+--------+-------+
| 2016.09.15D09:18:02.391 | 2016.09.15D08:18:02.391 | IBM | 63.46 |
| 2016.09.15D09:18:02.491 | 2016.09.15D08:16:22.391 | MSFT | 96.72 |
| 2016.09.15D09:18:02.591 | 2016.09.15D08:14:42.391 | AAPL | 23.06 |
+-------------------------+-------------------------+--------+-------+

元价格

+---------+---+---+---+
| c | t | f | a |
+---------+---+---+---+
| Time | p | | |
| SysTime | p | | |
| Ticker | s | | |
| Price | f | | |
+---------+---+---+---+

我想了解有关元数据中时间数据列(TimeSysTime)的更多信息。

例如,像这样:

元扩展价格

+---------+---+---+---+------------------+
| c | t | f | a | z |
+---------+---+---+---+------------------+
| Time | p | | | America/New_York |
| SysTime | p | | | America/Chicago |
| Ticker | s | | | |
| Price | f | | | |
+---------+---+---+---+------------------+

请注意,我有一个函数接受表和列来返回时区。TimeZone[Price;Time] 返回 America/New_York

我的问题只是关于如何将此信息包含在元函数中。我的第二个问题是,如果用户执行类似的操作,newPriceTable:Price(创建一个与前一个表相同的新表),那么metaExtended函数应该为两个表返回相同的值(类似于对具有相同对象引用的两个不同变量调用函数)

sql中是否存在类似的东西?

最佳答案

meta 是保留字,因此无法重新定义。但您可以创建自己的实现并使用它来代替 meta:

TimeZone:{[Table;Col] ... } / your TimeZone function

metaExtended:{meta[x],'([]z:TimeZone[t]each cols x)}

metaExtended Price

关于你的第二个问题,我认为不可能在 k/q 中做你想做的事情。将 Price 分配给 newPriceTable 后,后者确实是一个引用,但是一旦您修改它,kdb 就会创建一个副本并修改它而不是原始的。问题是无法判断 newPriceTable 是否仍然是对 Price 的引用还是一个全新的对象。

关于mysql - 扩展元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39513630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com