简介:
我遇到了奇怪的MySQL行为-- on CURRENT_TIMESTAMP属性正在添加,尽管我不希望它被添加。我想知道为什么会发生这种情况--我使用的是MySQL服务器还是MySQL工作台(v5.2.38)。
详情:
我使用EER图对数据库结构进行了建模,下面是一个示例表:
CREATE TABLE IF NOT EXISTS `privilege` (
`id` INT NOT NULL ,
`name` VARCHAR(64) NOT NULL COMMENT 'privilege name (just a label)' ,
`created_at`
我在mysql服务器上执行了以下查询:
CREATE TABLE user(
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL,
id integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
count integer NOT NULL,
name varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci
当我查看phpmyadmin时,我感到很惊讶。created
在mysql 5.7.28中,我创建了如下表:
create table t1 (
id int not null,
d1 timestamp)
engine=innodb;
它可以很好地工作,并将d1与default value current_timetamp、on update current_timestamp一起创建为non-null。
但是,当我尝试使用两个时间戳字段创建相同的表时,如下所示:
create table t1 (
id int not null,
d1 timestamp,
d2 timestamp)
engine=innodb;
我收到一个错误:
SQL (1
我在mysql中有表测试,如下所示:
id name address
1 Km sky
2 hd heaven
3 Ab null
4 en null
现在我做了一个sqoop导入,如下所示
sqoop import--connect jdbc:mysql://XXXXXX/testing --username XXXX --password XXXX --query "select * from testing.test where \$CONDITIONS" --null-string '' --null-non-string '
我有这张带有新闻的桌子,我想在日期上添加时间戳,我想在编辑文章时再更新一次。我希望它在MySql中自动发生。无需使用任何PHP代码。
CREATE TABLE IF NOT EXISTS news (
id int(11) NOT NULL AUTO_INCREMENT,
data text,
date_published timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
date_edited timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMEST
我可以在不生成id的情况下插入数据,但是当生成数据时,它就不能工作了。
我的实体类
@Entity
public class User {
long id;
String name;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNam
我很难在MySQL 5.5中填充模式。每个表都有一个"create_time“和"update_time”,它们是时间戳。我更希望这些列没有默认值,但是即使没有默认值,引用默认值也会出现一个1067错误。
#1067 - Invalid default value for 'update_time'
下面是由MySQL工作台生成的脚本的一部分。
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FO
我有这样的疑问
mysql_query("INSERT into reviews VALUES(0,$pid,$id,'new')") or die(mysql_error());
好像出了点差错
“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行使用接近‘new’的正确语法。”
虽然它看起来很好,但数据库表结构是:
`id` int(11) NOT NULL AUTO_INCREMENT,
`proposalid` int(11) NOT NULL,
`reviewerid` int(11) NOT NULL
我有现在的桌子:
mysql> DESCRIBE Test_tuto
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| nom | varchar(30) | NO | | NULL
知道为什么下面的VISIBLE会引起问题吗?
CREATE TABLE IF NOT EXISTS `setting` (
`uuid` INT(10) NOT NULL,
`type` VARCHAR(255) NOT NULL,
`code` VARCHAR(255) NOT NULL COMMENT 'An unique name.',
`value` MEDIUMTEXT NULL DEFAULT NULL,
`comment` LONGTEXT NULL DEFAULT NULL,
`created_on` INT UNSIGNED NOT N
我有一个日期列,其默认值是CURRENT_TIMESTAMP。它在本地运行良好,但是当我做了一个导出并试图在我的主机上创建数据库时,我得到了以下内容:
`Invalid default value for 'created'`
...from此代码:
CREATE TABLE IF NOT EXISTS `bookings` (
`id` varchar(11) NOT NULL,
`user_id` int(11) NOT NULL,
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modifie
我希望将日期设置为mysql中日期的默认值(不是时间戳),但出现以下错误
ALTER TABLE `RMS`.`transactionentry`
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL
误差
Invalid default value for 'Date'
同例
alter table `RMS`.`transactionentry`
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL
下面是一个mysql shell的代码片段: mysql> show variables like '%version%';
+-------------------------+--------------------------------------------------------+
| Variable_name | Value |
+-------------------------+----------------------------
我有一个需要int 'id‘自动增量的模型。当我尝试从server-script创建一个新记录时,我得到了'id' field value is required, but found 'null'。
这是真的,我没有设置这个字段。因为我假设它将由后面的云SQL实例设置。
我做错了吗?
编辑
我还有其他具有相同结构的表(一个必需的int id自动增量),它们工作得很好。将0设置为该字段的默认值将生成Error: MySQL does not support zeros as the value of an auto-increment field。设置%
我得到了一个错误:“列计数与第1行的值计数不匹配”,但是我已经计数了,而且我有正确的列数,我觉得错误是使用setBoolean()方法的。我有8列,您将看到我在我的方法中传递了7个参数,因为其中一个列是AUTO_INCREMENTE。如果我不使用setBoolean方法来代替setString、setInt或其他任何东西,那么我的代码工作得很好,但是当我使用setBoolean()时就不行了。
这是我的代码,我希望它能让我的问题变得更清楚:
我的Java中有一个自动代码,它创建数据库&如果不存在相应的表/s:
DB.createDB("userSecInfo");
DB