如何为MySQL Datetime列设置默认值?
在SQL Server中它是getdate()
.什么是MySQL的等价物?如果这是一个因素,我正在使用MySQL 5.x.
我可以运行此查询来获取MySQL数据库中所有表的大小:
show table status from myDatabaseName;
Run Code Online (Sandbox Code Playgroud)
我想在理解结果方面提供一些帮助.我正在寻找最大尺寸的桌子.
我应该看哪一栏?
我有一张桌子:
table votes (
id,
user,
email,
address,
primary key(id),
);
Run Code Online (Sandbox Code Playgroud)
现在我想使列用户,电子邮件,地址唯一(一起).
我如何在MySql中执行此操作?
我在MySQL中有一个消息表,用于在用户之间记录消息.除了典型的id和消息类型(所有整数类型),我需要将实际的消息文本保存为VARCHAR或TEXT.我设置的前端限制为3000个字符,这意味着消息永远不会插入到数据库中,因为它比这更长.
是否有理由使用VARCHAR(3000)或TEXT?有一些关于编写VARCHAR(3000)的东西,感觉有点违反直觉.我已经浏览了Stack Overflow上的其他类似帖子,但是能够获得特定于此类公共消息存储的视图.
我想在数据库表中添加一行,但如果存在具有相同唯一键的行,我想更新该行.
例如,
insert into table (id, name, age) values(1, "A", 19)
Run Code Online (Sandbox Code Playgroud)
假设唯一的密钥是id
,在我的数据库中有一行id = 1
.在这种情况下,我想用这些值更新该行.通常这会产生错误.如果我使用insert IGNORE
它将忽略错误,但它仍然不会更新.
在执行INSERT
包含许多行的语句时,我想跳过可能导致失败的重复条目.经过一些研究,我的选择似乎是使用:
ON DUPLICATE KEY UPDATE
这意味着需要花费一些不必要的更新,或者 INSERT IGNORE
这意味着邀请其他类型的未能在未经宣布的情况下失败. 我对这些假设是对的吗?简单地跳过可能导致重复的行并继续执行其他行的最佳方法是什么?
我有2-3个不同的列名称,我想在整个数据库中查找并列出所有具有这些列的表.任何简单的脚本?
我开始使用谷歌搜索,发现这篇文章讨论了互斥表.
我有一张约有1400万条记录的表格.如果我想以相同的格式添加更多数据,有没有办法确保我想要插入的记录不存在而不使用一对查询(即,一个查询要检查,一个要插入是结果集是空)?
unique
对某个字段的约束是否保证insert
如果它已经存在则会失败?
似乎只有一个约束,当我通过php发出插入时,脚本呱呱叫.
我是一个老派的MySQL用户,并且总是优先JOIN
于子查询.但是现在每个人都使用子查询,我讨厌它; 我不知道为什么.
如果存在任何差异,我缺乏理论知识来判断自己.子查询是否与a一样好JOIN
,因此没有什么可担心的?