【发布时间】:2020-06-10 23:57:13
【问题描述】:
我正在尝试将数据从 old_table 传输到 table,其中一些数据位于动态列中以供将来导入
INSERT INTO `table` (`col_1`,`col_2`,etc.... `attributes`)
SELECT `col_1`,`col_2`,etc.... COLUMN_CREATE('name',`col_99` AS UNSIGNED,'name2',`col_100` AS CHAR)
FROM `old_table`
关于动态表的唯一文档基本上是
COLUMN_CREATE('name',1 AS UNSIGNED)
这不是一个非常“动态”的例子......
对其他解决方案开放,但不支持 JSON,但更喜欢 MariaDB,因为它本质上是我习惯的 MySQL
编辑:非常感谢您的回答,但对于更多信息,我正在尝试使用这种方法记录(严重)这里:https://mariadb.com/kb/en/dynamic-columns-functions/
编辑 2:我想知道 EAV 是否可能是唯一的解决方案,因为我似乎在使用 MariaDB 动态列时遇到了困难,我在任何地方都找不到更多文档或指南!
编辑 3:这些动态列仍然没有任何运气? MariaDB 真的很混乱!
【问题讨论】:
-
“动态列”是什么意思?
-
对我来说这听起来完全是错误的方法:-(
-
对不起,正在努力寻找合适的词来解释。基本上,我可以用大约 200 列和大量空值来做我需要的事情......它不需要增加列数的范围,并且 200 列是可能的,但这不是一个优雅的解决方案。另外,另一种方法是 EAV 方法,但同样,它不优雅,不需要无限数量的列,所以我认为 MariaDB 有这个动态列的东西,有点像在 MySQL 中使用 JSON,但更易于搜索,因此更优雅????
-
您愿意解释一下 (1) 问题空间是什么 - 例如产品属性,以及 (2) 解释您对 JSON 的厌恶。
标签: mysql sql mariadb sql-insert dynamic-columns