在表格中,我创建了一个新的字段/列,然后将列设置为填充为另外两个字段的连续。 concat中使用的两个字段是文本字段。我执行了concat就好了。但是,我需要将concat中使用的两个文本字段之一转换为日期格式(字段值已经填充为日期但是以文本格式填充)。当我将字段的格式从文本更改为日期时,会导致列以日期格式(00-00-0000)填充所有零。最初,我认为这在某种程度上是由字段用于填充(尽管理论上它不应该)所引起的,所以我删除了concat填充的字段/列,返回并更改了字段的格式到目前为止的文本,这导致字段值再次变为零(00-00-0000)。
在解决此问题时,我发现可以将所需字段的格式更改为日期以外的类型(例如,从varchar到bigint或text)。如果我在执行concat之前更改格式,则格式从文本到日期完全改变;因此,似乎一旦在concat中使用了文本字段,字段值的完整性就会发生某种情况,因此如果在concat中使用文本字段后将文本字段转换为日期字段,则值将更改到00-00-0000。另外,我创建了一个新的空列,复制了我要转换为日期的文本列,并将其粘贴到空列中;数据准确地粘贴它,但是当我更改格式时,字段值再次变为00-00-0000。
在总共五个包含超过80M总行的数据库表中,我创建了一个额外的列并运行了在每个表中使用两个字段来填充新列的连接。 concat中使用的字段都是文本字段,而使用concat填充的字段是varchar字段。
我正处于构建这个数据库的最初阶段,所以如果这个问题的唯一合理解决方案是删除数据库并重新创建它,我会这样做;但是,找到一个不再涉及删除和加载数据的解决方案,而不会损害整个数据库的完整性,这将是理想的。
我正在运行带有InnoDB存储引擎的RDS Aurora数据库,并使用Navicat mysql作为DBMS。
提前感谢您提供有关此问题的任何帮助。