1

如果我要为我的客户在现有数据库中添加一列(即 EIN 税号),当我要求将信息放入客户时,是否会对可能在该字段中没有任何内容的现有客户产生任何影响注册表单?

我们有超过 3000 名客户,所以我不想通过添加任何新客户帐户来打扰他们。

4

4 回答 4

3

您可以在将列添加到数据库时为其设置默认值,这样我就不会太担心了。

ALTER TABLE `table_name` ADD COLUMN `column_name` int(10) NOT NULL DEFAULT 0

最大的问题是您将行添加到数据库中的现有方式以及您事先定义列的方式。

例如:

INSERT INTO `table_name` VALUES ('col1','col2','col3').

由于列数不匹配,上述语句将失败,因为您现在有 4 列(或多列)。

INSERT INTO `table_name` (col1,col2,col3) VALUES ('col1','col2','col3')

上面的语句可以正常工作,因为您要事先定义列,或者如下:

INSERT INTO `table_name` SET col1='col1',col2='col2',col3='col3'
于 2013-06-14T16:50:13.090 回答
2

如果这是针对 Zen Cart 的,那么已经有一个附加组件。

请参阅http://www.zen-cart.com/downloads.php?do=file&id=1137 - 客户注册(创建帐户)页面的额外字段。

于 2013-06-16T01:16:07.333 回答
1

我将假设您使用 MySQL 或 SQL 作为数据库,默认情况下,您可以在数据库中的任何位置设置新列,而不会中断当前信息。您还可以为该列设置一个 DEFAULT 值,以便表中的每个客户都将这些值设置到他们的帐户中。我还建议如果更改数据库,请查看您的插入查询,因为如果您有基本查询(如下)

INSERT INTO `customers` VALUES(NULL,'myUsername','myPassword','myEmail');

它将不再起作用。您将收到和 SQL 错误。解决此问题的最简单方法是设置直接查询(如下)

INSERT INTO `customers` (`id`,`username`,`password`,`email`) VALUES (NULL,'myUsername','myPassword','myEmail');

希望这能很好地回答你的问题。快乐编码。

于 2013-06-14T16:57:03.233 回答
1

如果您的意思是 required ,NOT NULL那么它将将该列DEFAULT设置为所有 3000 条记录的列值设置。

如果您的意思是PRIMARY KEY默认情况下是UNIQUE,那么您必须为所有 3000 条记录提供一个值,或者您可以将列设置为AUTO INCREMENT,它会生成值

于 2013-06-14T16:48:05.477 回答