我正在尝试在运行脚本时将两列添加到数据库中。问题是当第二列被创建时,当我真的想要int
时,它的类型为varchar2
。
我的查询:
$query1 = "ALTER TABLE `keyword_table` ADD `".$currentWeek."` INT NOT NULL AFTER `".$previousWeek."_url`";
$query2 = "ALTER TABLE `keyword_table` ADD `".$currentWeek."_url` VARCHAR2(100) NOT NULL AFTER `".$currentWeek."`"
变量放入时的查询:
ALTER TABLE `keyword_table` ADD `07_07_2015` INT NOT NULL AFTER `01_07_2015_url`
ALTER TABLE `keyword_table` ADD `07_07_2015_url` VARCHAR2(100) NOT NULL AFTER `07_07_2015`
这些查询是我想要的,但是当第二个查询运行时,它会创建我想要的列,但是INT
而不是VARCHAR2
。我检查了语法,我继续使用PhpMyAdmin并查看插入列时使用的语法,它与上面的相同。
为什么它没有使列成为正确的类型?
编辑
我运行了这样的代码:
$query = "ALTER TABLE `keyword_table` ADD `".$currentWeek."` INT NOT NULL AFTER `".$previousWeek."_url`";
mysqli_query($conn, $query);
echo $query.'<br>';
$query = "ALTER TABLE `keyword_table` ADD `".$currentWeek."_url` VARCHAR2(100) NOT NULL AFTER `".$currentWeek."`";
mysqli_query($conn, $query);
echo $query.'<br>';
答案 0 :(得分:2)
VARCHAR2
是Oracle特有的供应商。如果您不使用Oracle,则应使用VARCHAR(100)
代替。
在大多数情况下,差别不大。
区别在于......
VARCHAR(100)
- 无论是否只有50个字符,分配的内存为100。
VARCHAR2(100)
- 分配的内存仅等于输入字段的字符数。
快乐的编码!
答案 1 :(得分:0)
mysql中没有数据类型为VARCHAR2。请改用VARCHAR。
有关mysql支持的数据类型列表,请参阅:https://dev.mysql.com/doc/refman/5.0/en/data-types.html