问题标签 [mariadb-10.5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
odbc - 无法在 MariaDB 中插入查询
我正在尝试
insert into Table(ID,Value,Date) Values('Test1', '33', '20210315 11:15:27.059')
使用 ODBC 驱动程序(Maria 3.1)向 MariaDB 插入查询,但出现此错误:
异常消息:错误 [22007] [ma-3.1.11][10.2.15-MariaDB]不正确的日期时间值:'20210315 11:15:27.059' 对于第 1 行的列'日期'我认为这种格式'20210315 11: MariaDB 不支持 15:27.059'。
你能帮我从数据库中更改时间格式吗?
谢谢你。
mariadb-10.3 - 插入查询 MariaDb DateTime 格式
我需要在 Mariadb 中插入以下查询,但出现错误,如下图所示: 在此处输入图像描述
有没有办法更改 DateTime 格式或分隔符以使数据库支持此格式 20210315 11:15:27.059。
mysql - 为每个父优化选择最新的子
我有 2 个表,一个关键字表和一个关键字位置表
关键词结构
关键字位置结构
这就是我执行选择的方式
这个查询可以进一步优化吗?它运行大约 800 毫秒
json - 如何使用 ServiceStack 将 POCO 存储到具有复杂类型(对象和结构)的 MariaDB 以 JSON 形式存储?
我有以下设置:C#、ServiceStack、MariaDB、带有对象和结构的 POCO、JSON。
主要问题是:如何使用 ServiceStack 将 POCO 存储到 MariaDB 中,具有复杂类型(对象和结构)的 JSON 并且仍然可以对相同的 POCO 进行反序列化?所有这些单个任务都受支持,但是当所有这些任务放在一起时我遇到了问题,主要是因为结构。
...最后在写这篇文章的过程中,我找到了一些解决方案,看起来我回答了我自己的问题,但我仍然想知道更多技术人员的答案,因为我认为我找到的解决方案有点复杂。细节和两个子问题在上下文中稍后出现。
对不起,由于我的知识有限,可能造成的长度和错误信息。
简单的例子。这是我结束的最后一个工作。一开始没有SomeStruct.ToString()/Parse()
方法,也没有JsConfig
设置。
我知道/尝试过什么(我认为),但起初并没有帮助自己解决:
- ServiceStack默认将复杂类型存储在DB中作为blobbed JSV(第一部分的最后一段:https ://github.com/ServiceStack/ServiceStack.OrmLite ),因此有必要按照建议的方式设置它:
MySqlDialect.Provider.StringSerializer = new JsonStringSerializer();
(https:// /github.com/ServiceStack/ServiceStack.OrmLite#pluggable-complex-type-serializers )
=> 默认 JSV 更改为 JSON。 - ServiceStack 的序列化不适用于结构,有必要以特殊方式对待它们:
a) 根据https://github.com/ServiceStack/ServiceStack.Text#c-structs-and-value-types和示例https://github.com/ServiceStack/ServiceStack.Text/#using-structs-to- custom-json是需要实现的
TStruct.ToString()
和static TStruct.ParseJson()/ParseJsv()
方法。b) 根据https://github.com/ServiceStack/ServiceStack.Text/#typeserializer-details-jsv-format和单元测试https://github.com/ServiceStack/ServiceStack.Text/blob/master/tests/ServiceStack .Text.Tests/CustomStructTests.cs它应该是
TStruct.ToString()
(与 a 相同)和static TStruct.Parse()
.子问题#1:哪一个是正确的?对我来说,
ParseJson()
从来没有被称为,Parse()
是。文档问题还是在其他情况下使用?我实施了选项 b)。结果:
IDbConnection.Save(_mainObject)
将项目保存到 MariaDB。成功。
通过保存过程ToString()
并被Parse()
调用。在 Parse 中,传入的 JSON 看起来是这样的:
"{\"StringProp\":\"SomeStruct's String\"}"
. 美好的。- 序列化工作。成功。
- 反序列化失败。我不知道原因,但传入 Parse() 的 JSON 被“双重转义”:
"{\\\"StringProp\\\":\\\"SomeStruct's String\\\"}"
子问题 #2:为什么 Parse 中的“双重转义”反序列化?
我尝试使用 JsConfig 解决结构(和 Newtonsoft.Json 以获得正确的 JSON):
a)一开始没有在 TStruct 中定义 ToString() 和 Parse()。结果:
- 保存失败:保存期间使用的
json
输入JsonConvert.DeserializeObject(json)
只是输入名称"WinAmbPrototype.SomeStruct"
。 - 反序列化工作。
b)然后我也使用 Newtonsoft.Json 实现了 ToString()。在使用 Save 期间
ToString()
,JsConfig.SerializeFn
甚至仍然设置了 JsConfig.SerializeFn(也许是设计使然,我不判断)。结果:- 保存失败:但是
json
在保存期间调用的 DeserializeFn 的输入发生了变化,现在它是类似 JSV 的"{StringProp:SomeStruct's String}"
,但仍然不能反序列化为 JSON。 - 反序列化工作。
- 保存失败:保存期间使用的
然后(在写这篇文章时我仍然没有任何解决方案)我找到了 JsConfig.Raw* “覆盖”并尝试了它们:
a)一开始没有在 TStruct 中定义 ToString() 和 Parse()。结果与 2a 相同。
b)然后我实现了 ToString()。结果:
- 两者都有效。此任务不需要任何
Parse()
方法。
但这是非常脆弱的设置:
- 如果我删除
ToString()
了,它会失败(现在我明白了为什么,默认 ToString 生成的 JSON 只在 2a、3a 中键入名称)。 - 如果我删除了设置,它会在(“双转义”JSON)
RawSerializeFn
中失败。RawDeserializeFn
- 两者都有效。此任务不需要任何
有没有更简单的解决方案?如果有人指出我更好的方向,我会很高兴。
可接受的可能是两个(由于不同的情况,它们都可以访问):
- 如果我是 TStruct 所有者:仅使用纯
TStruct.ToString()
并static TStruct.Parse()
支持 ServiceStack 开箱即用的反序列化和 DB(在 中没有不同的输入Parse()
)。 - 如果我是 TStruct 的消费者,没有实现 JSON 支持并且我无法访问它的代码:直到现在我还没有找到方法,如果 ToString 没有实现:保存到数据库不起作用。也许可以确保 JsConfig 序列化函数足以用于反序列化和在保存到数据库期间使用时。
最好的方法是不使用其他依赖项(例如 Newtonsoft.Json)来序列化结构。对于这种情况,也许有些JsConfig.ShallProcessStructs = true;
(警告:只是一个提示,截至 2021-04-02 不起作用)会很好。
mariadb - Not able to drop field in MariaDB table
I have table my_transitions
and I am trying to delete field called myStage
.
I am using this command:
I am seeing this error:
Key column 'myStage' doesn't exist in table
But when I list all fields using this command:
describe my_transitions
I can see
Anyone can see if I am doing something wrong?
EDIT:
If I run show create table my_transitions;
, I am getting:
sql - MariaDB中使用的字符串到整数的转换规则是什么
长话短说:我需要在 MariaDB 中找到从字符串到整数的类型转换规则。
我的情况:我在一个表中有一个 VARCHAR 列,它可以有数值(1
, 2
, 3
),用零填充的数值(01
, 02
, 03
)和一些非数值。我需要将数值作为整数进行比较,但找不到有关 CAST 或 CONVERT 函数工作原理的足够文档。对我来说,例如非数值应始终转换为 0 对我来说并不明显,因为它现在似乎可以工作。
phpmyadmin - “非法混合排序规则”错误与 phpMyAdmin 的库存安装
问题
我有一个 Debian 11(测试)的库存安装和全新的 MariaDB(10.5.9-MariaDB-1)、phpMyAdmin(5.0.4deb2)和 Lighttpd(1.4.59)安装。添加用户并登录后,单击任何数据库和权限选项卡会呈现以下错误:
我的问题:
这是 Debian 在某个时候需要解决的问题,但在短期内是否有一个全局排序规则设置来修复这个错误?
“正确”的整理往往是一场圣战。我想要一些合理的东西,直到我可以更详细地查看排序规则。
更多错误详情
当您单击权限选项卡时,由 phpMyAdmin 本身生成的查询会发生此错误。生成错误的查询在下面重现。该查询似乎仅合并了来自 mysql 数据库的“db”表和“user”视图的数据,后者从“global_priv”中提取数据
未对库存 MariaDB 排序规则进行任何更改。MariaDB 的内部 mysql 数据库表默认情况下似乎是一堆乱七八糟的排序规则。
表格大多是 utf8_bin,但也有一些 utf8_general_ci,甚至还有一个 latin1_swedish_ci。表中的列是类似的热混乱,有些采用表的默认排序规则,有些被专门设置为 utf8_general_ci 和 utf8mb4_bin。mysql.db 和 mysql.global_priv 都是 utf8_bin,但 global_priv ix utf8mb4_bin 中的一列和 mysql.db 中的许多列是 utf8_general_ci。
查询生成错误:
mysql - 为什么在执行执行任何查询的 mysql 命令时出现“mysql:未知选项'-▒'”错误?
关于在linux中执行以下命令
我收到以下错误
此输出不依赖于执行命令,无论密码正确与否,它都是相同的。这是在共享主机上。请告知我该怎么办?
mysql - MariaDB:嵌入式数据库的数据库连接是否共享页面缓存/缓冲池?
我有一个使用嵌入式 MariaDB 数据库的多线程 (OpenMP) 应用程序。有时我使用 Aria,有时我使用 InnoDB。当我为 Aria (aria_pagecache_buffer_size) 或 InnoDB 缓冲池大小 (innodb-buffer-pool-size) 设置页面缓存缓冲区大小时,此内存是否会在嵌入式数据库的所有 OpenMP 线程之间共享?或者它们对于每个连接都是私有的?