在为 SQL Server 抓取数据时更改 mySQL 表和 ADD 列是否正常?


Is it normal to Alter a mySQL table and ADD columns when grabbing data for SQL Server?

我有一个mySQL数据库,一旦登录,它就会从在线用户那里接收数据。数据表是这样创建的...

CREATE TABLE   
IF NOT EXISTS `results` (
       `id` INT(11) NOT NULL AUTO_INCREMENT,
       `patient_id` CHAR(10) NOT NULL,
       `login_id` CHAR(7) NOT NULL,
       `result_date` date NOT NULL,
       `result` VARCHAR(4) NOT NULL,
       created_at TIMESTAMP NOT NULL,
       PRIMARY KEY(`id`)
   ) DEFAULT CHARSET = utf8 COMMENT = 'List of Member Test Results'
    ;

完成后,我们的 IT 经理决定更改我的数据库和 PHP 代码,以便他可以轻松地将数据提取到他的 SQL Server 数据库中。我的问题将是双重的,这是否必要,这样做是否存在潜在问题。

他改变的东西;将result_date从date更改为其他数据类型,因此他可以用SQL Server格式输入我。他更改了时间戳/创建位置,因此他的更改不会更新时间戳,并且他添加了一个布尔/计数器列,因此他的数据库知道它是否已从该行中提取。此外,他添加了第三个日期(日期类字段为非日期类型),因此当他从我的数据库中提取时,他可以标记该时间。

对我来说,这不仅看起来矫枉过正,而且还迫使我允许更改我的数据库。最后,我被骂"你为什么要用created_at timestamp NOT NULL"。不想就此召集某人,但这个问题让我有点困惑。

正如其他人在评论中指出的那样,您的IT经理似乎没有那么敏锐。 为了简化事情,他为什么不在他的 ImportIDFromMySQL SQL 表中添加一个列并使用您的自动增量。 在那里,他有或没有。 至于关心日期/时间戳,他应该在他的"漂亮"表格中添加额外的列,而不管你的生产内容。

有时,豆类计数器经理真的是少数需要处理的。

更改数据库并进行更改是可以的。但是,我的建议是创建镜像数据库,然后他可以在镜像数据库上执行他想要的操作。更改数据库的结构可能会导致许多级别的许多问题。在更改、删除、截断或使用与删除和更新语句相关的任何函数之前,请始终备份数据库。

您的 IT 经理应该已创建镜像数据库。好吧,继续前进他仍然可以。