mysql - MariaDB:使用 dynamic_columns 加载数据 INFILE

标签 mysql mariadb load-data-infile

我有一个看起来像这样的表(使用 MariaDB):

CREATE TABLE table1 (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
  ,c_id varchar(40) NULL
  ,email varchar(150) NULL
  ,dynamic_columns BLOB NULL
  ,created_at TIMESTAMP NOT NULL DEFAULT 0
  ,updated_at TIMESTAMP NULL DEFAULT current_timestamp ON UPDATE current_timestamp
);

我正在将一些遗留表中的数据加载到此表中,并且我正在使用 MariaDB 的 dynamic_columns根据遗留表最多存储 3 个动态列。 ( https://mariadb.com/kb/en/mariadb/documentation/nosql/dynamic-columns/ )

我想使用 LOAD DATA INFILE快速/批量将遗留数据插入新表,但我不知道如何使用动态列执行此操作。

Google 搜索一无所获。

最佳答案

动态列以内部二进制格式存储。要在 MariaDB 服务器之外创建或更改动态列,您应该使用 MariaDB Connector/C 的动态列 API:

https://mariadb.com/kb/en/mariadb/dynamic-columns-api/

您还将在Connector/C 的测试套件中找到一些示例:

https://github.com/MariaDB/mariadb-connector-c/blob/master/unittest/libmariadb/dyncol.c

关于mysql - MariaDB:使用 dynamic_columns 加载数据 INFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27411006/

相关文章:

mysql - 在 select 语句中获取重复值

mysql - datediff() 不忽略时间

mysql - 如何检查 JSON 是否包含字段并具有值 Sequelize MySQL (MariaDB)

mysql - 进阶 MySQL 左联接 IFNULL 查询

c# - 使用 C# 将 XML 文件加载到 MySQL 的最快方法是什么?

mysql - 动态查询 where 子句检查

javascript - Sequelize : Many To Many table(CROSS TABLE) associated to other table

sql - 将逗号分隔的文本文件中的状态行和 isos 行插入到基于 Web 的 Mysql 中

java - RESTful Web 服务加载 MYSQL 文件中的数据

php - 在 IF 条件下选择 DATEDIFF 时出错