javascript

java

python

c#

node.js

reactjs

android

php

c++

html

jquery

ruby-on-rails

css

git

ios

.net

sql

c

string

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

mysql - 如何更新表中的行或如果它不存在则插入它?

我有下表的柜台:

CREATE TABLE cache (
    key text PRIMARY KEY,
    generation int
);

我想增加其中一个计数器,或者如果相应的行还不存在则将其设置为零。 有没有办法在标准SQL中没有并发问题的情况下执行此操作? 该操作有时是交易的一部分,有时是分开的。

如果可能的话,SQL必须在SQLite,PostgreSQL和MySQL上不加修改地运行。

搜索产生了一些想法,这些想法要么遇到并发问题,要么特定于数据库:

  • 尝试ON DUPLICATE KEY UPDATE新行,如果出现错误,请尝试INSERT。 不幸的是,INSERT上的错误会中止当前事务。

  • ON DUPLICATE KEY UPDATE该行,如果没有修改行,则为INSERT新行。

  • MySQL有一个ON DUPLICATE KEY UPDATE条款。

编辑:感谢所有的好评。 看起来保罗是对的,并没有单一,便携的方式来做到这一点。 这对我来说非常令人惊讶,因为它听起来像是一个非常基本的操作。

trans by 2019-09-17T05:38:49Z

将SQL转储导入MySQL时出错:未知数据库/无法创建数据库

我很困惑如何导入SQL转储文件。 如果不首先在MySQL中创建数据库,我似乎无法导入数据库。

这是database_name尚未创建时显示的错误:

database_name =有权访问原始服务器上的数据库的用户的用户名。
database_name =原始服务器中的数据库名称

$ mysql -u username -p -h localhost database_name < dumpfile.sql   
Enter password:  
ERROR 1049 (42000): Unknown database 'database_name' 

如果我以root身份登录MySQL并创建数据库,请致电database_name

mysql -u root  
create database database_name;  
create user username;# same username as the user from the database I got the dump from.  
grant all privileges on database_name.* to username@"localhost" identified by 'password';  
exit mysql

然后再次尝试导入sql转储:

$ mysql -u username -p database_name < dumpfile.sql  
Enter password:  
ERROR 1007 (HY000) at line 21: Can't create database 'database_name'; database exists

我该如何导入SQL转储文件?

trans by 2019-09-17T05:03:16Z

indexing - 在没有表锁定的情况下在巨大的MySQL生产表上创建索引

我需要在~5M行MySQL表上创建索引。 这是一个生产表,如果我运行一个CREATE INDEX语句,我担心一切都完整。

有没有办法创建该索引而不阻止插入和选择?

只是想知道我没有停止,创建索引并重新启动我的系统!

trans by 2019-09-17T00:36:59Z

mysql - BOOLEAN或TINYINT混淆

我正在为一个网站设计一个数据库,我需要使用布尔日期类型来存储2个状态,无论是真还是假。 我正在使用MySQL。
在使用phpMyAdmin设计数据库时,我发现我同时拥有BOOLEAN数据类型和TINYINT数据类型。
我经历了不同的文章,有人说TINYINT和BOOLEAN一样,没什么区别。 有人说BOOLEAN在MySQL中转换为TINYINT。

我的问题是,如果两者相同,为什么存在两个呢? 应该只有一个。

以下是我读过的文章的参考:
[http://www.careerride.com/MySQL-BOOL-TINYINT-BIT.aspx]
[http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html]

trans by 2019-09-16T19:36:30Z

php - 关闭mysql连接重要吗?

关键是要有效地关闭mysql连接,还是在php文件运行后自动关闭?

trans by 2019-09-16T16:44:26Z

MySQL和Java - 获取最后插入值的ID(JDBC)

可能重复:
如何在JDBC中获取插入ID?

嗨,我正在使用JDBC通过Java连接数据库。

现在,我做一些插入查询,我需要获取最后插入值的id(所以,在risultato = -1之后)。

我不需要像risultato = -1这样的东西,因为我可能有并发问题。

我只需要检索与最后一次插入相关的id(关于我的Statement实例)。

我试过这个,但似乎它不适用于JDBC:

public Integer insertQueryGetId(String query) {
    Integer numero=0;
    Integer risultato=-1;
    try {
        Statement stmt = db.createStatement();
        numero = stmt.executeUpdate(query);

        ResultSet rs = stmt.getGeneratedKeys();
        if (rs.next()){
            risultato=rs.getInt(1);
        }
        rs.close();

        stmt.close();
    } catch (Exception e) {
        e.printStackTrace();
        errore = e.getMessage();
        risultato=-1;
    }
  return risultato;
}

事实上,每次risultato = -1,我得到java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().

我该如何解决这个问题? 谢谢Stackoverflow人:)

trans by 2019-09-16T06:50:25Z

mysql - 我在windows compu上找不到my.cnf

这个问题在这里已有答案:

  • XAMPP for Windows中mysql客户端“.my.cnf”的位置是什么?                                     12个答案

我的电脑是Windows XP。

我需要找到my.cnf以获取所有权限回root用户。 我不小心删除了root用户的一些权限。 我仍然有密码,以root用户身份登录MySQL是没有问题的。 但我无法改变一张桌子。

trans by 2019-09-16T04:51:59Z

重复整个MySQL数据库

是否有可能在Linux服务器上复制整个MySQL数据库?

我知道我可以使用导出和导入,但原始数据库大于25MB,所以这不是理想的。

是否可以使用mysqldump或直接复制数据库文件?

trans by 2019-09-16T03:49:36Z

mysql - B-Tree vs Hash Tab

在MySQL中,索引类型是b树,并且访问b树中的元素是以对数分摊的时间O(1)

另一方面,访问哈希表中的元素是在O(1)中。

为什么不使用哈希表而不是b树来访问数据库中的数据?

trans by 2019-09-16T02:32:49Z

php - 以日期时间格式mySQL插入当前日期

我在将日期正确插入数据库时遇到问题。

$date = date('m/d/Y h:i:s', time());

我使用这种格式,并且它正确地回声,但是,当我插入时

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')");

它似乎无法正常工作,并且时间仍为00:00:00如果你能找到很棒的解决方案,谢谢。

trans by 2019-09-16T00:25:54Z

mysql - 用于显示查询历史的SQL命令

我想在我的MYSQL查询浏览器中显示我执行的sql命令历史记录。 显示历史记录的sql语句是什么?

trans by 2019-09-15T21:15:44Z

sql - 使用MySQL生成随机且唯一的8个字符串

我正在开发一款涉及车辆的游戏。 我有一个名为“车辆”的MySQL表,其中包含有关车辆的数据,包括存储车辆牌照的“板”栏。

现在这里出现了我遇到问题的部分。 我需要在创建新车辆之前找到未使用的车牌 - 它应该是一个字母数字8字符随机字符串。 我是如何实现这一点的是在Lua中使用while循环,这是我正在编程的语言,用于生成字符串并查询DB以查看它是否被使用。 然而,随着车辆数量的增加,我预计现在这种情况会变得更加低效。 因此,我决定尝试使用MySQL查询解决此问题。

我需要的查询应该只生成一个8字符的字母数字字符串,该字符串不在表中。 我再次想到了生成和检查循环方法,但我并没有将这个问题局限于那个问题,以防万一更有效。 我已经能够通过定义一个包含所有允许的字符的字符串并随机地对其进行子字符串来生成字符串,仅此而已。

任何帮助表示赞赏。

trans by 2019-09-15T17:09:52Z

MySQL分片方法?

Sharding MySQL表的最佳方法是什么?我能想到的方法是:

  1. 应用程序级别分片?
  2. 在MySQL代理层进行分片?
  3. 用于分片的中央查找服务器?

你知道这方面有什么有趣的项目或工具吗?

trans by 2019-09-15T11:59:42Z

mysql - SELECT * WHERE NOT EXIST

我想我正走在正确的道路上......请耐心等待我,因为我的SQL并不是最好的

我正在尝试查询数据库以从一个表中选择某些单元格中不存在某些单元格的所有内容。 这很多没有多大意义,但我希望这段代码能够实现

SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)

所以基本上我有一张表,里面有员工及其详细信息。 然后另一个表格包含其他一些细节,包括他们的名字。 如果名称不在eotm_dyn表中,意味着没有条目,我想确切地看到它们是谁,或者换句话说,看看究竟缺少了什么。

上面的查询没有返回任何内容,但我知道有20个名字丢失,所以我显然没有做对。

有人可以帮忙吗?

trans by 2019-09-15T05:28:16Z

linux - MySQL Server和MySQL Client有什么区别

在Ubuntu中,我通常会安装两者,但MySQL的客户端和服务器之间有什么区别。

作为奖励,当一个新的声明提到它需要MySQL 5.x它是指客户端,服务器或两者。 例如,这个链接[https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html]提到它需要5.7.x来支持json_extract,这是否意味着客户端, 服务器或两者都需要5.7.x

trans by 2019-09-14T01:37:17Z

php - MySQL数据库无法在XAMPP Manager-osx中启动

我大约一个月前下载了XAMPP,它运行得很好。 今天我安装了一个语音识别软件,然后重新启动了我的电脑。 从那以后,MySQL将无法在我的manager-osx应用程序中启动。 它不会在应用程序日志中抛出一个。 这就是它所说的:

Stopping all servers...
Stopping Apache Web Server...
/Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh : httpd stopped
Stopping ProFTPD...
Checking syntax of configuration file
/Applications/XAMPP/xamppfiles/proftpd/scripts/ctl.sh : proftpd stopped
Restarting all servers...
Starting MySQL Database...

Starting Apache Web Server...
/Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh : httpd started
Starting ProFTPD...
Checking syntax of configuration file
/Applications/XAMPP/xamppfiles/proftpd/scripts/ctl.sh : proftpd started

我的ProFTPD和我的Apache Web服务器都在运行。 MySQL不是。当我去phpmyadmin时,它会抛出这个错误信息。

#2002 - No such file or directory
The server is not responding (or the local server's socket is not correctly configured).

请帮我。 我不知道该怎么做。

更新:

在浏览了一下互联网之后,我发现了一个用户与MAMP类似的问题,另一个用户建议杀死mysql进程,这意味着什么。 这可以解决我的问题吗?

更新2:

我找到了问题的答案,但我还没有回答。 所以这是答案:

1)打开终端并输入

sudo su

然后输入你的密码

2)然后输入

ps aux | grep mysql

(只需复制并粘贴)

3)您需要获取mysql的进程ID。 顶部附近应该有数字,例如739或8827

4)使用杀死进程

kill -9 {process id}

这应该是这样的:kill -9 739

5)在manager-osx中重启MySQL

trans by 2019-09-13T19:54:52Z

php - 命令不同步; 你不能运行这个命令

我正在尝试执行我的PHP代码,它通过mysqli调用两个MySQL查询,并得到错误“命令不同步;你现在无法运行此命令”。

这是我正在使用的代码

<?php
$con = mysqli_connect("localhost", "user", "password", "db");
if (!$con) {
    echo "Can't connect to MySQL Server. Errorcode: %s\n". Mysqli_connect_error();
    exit;
}
$con->query("SET NAMES 'utf8'");
$brand ="o";
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = $data->num_rows;
    $rows = getRowsByArticleSearch("test", "Auctions", " ");
    $last = ceil($rowcount/$page_rows);
}  else {

print_r($con->error);
}
foreach ($rows as $row) {
    $pk = $row['ARTICLE_NO'];
    echo '<tr>' . "\n";
    echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['USERNAME'].'</a></td>' . "\n";
    echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['shortDate'].'</a></td>' . "\n";
    echo '<td><a href="#" onclick="deleterec(\'Layer2\', \'' . $pk . '\')">DELETE RECORD</a></td>' . "\n";
    echo '</tr>' . "\n";
}
function getRowsByArticleSearch($searchString, $table, $max) {
    $con = mysqli_connect("localhost", "user", "password", "db");
    $recordsQuery = "SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, date_format(str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '%?%' ORDER BY str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s')" . $max;
    if ($getRecords = $con->prepare($recordsQuery)) {
        $getRecords->bind_param("s", $searchString);
        $getRecords->execute();
        $getRecords->bind_result($ARTICLE_NO, $USERNAME, $ACCESSSTARTS, $ARTICLE_NAME, $shortDate);
        while ($getRecords->fetch()) {
            $result = $con->query($recordsQuery);
            $rows = array();
            while($row = $result->fetch_assoc()) {
                $rows[] = $row;
            }
            return $rows;
        }
    }
}

我试过阅读这个,但我不确定该怎么做。 我已经阅读了关于商店结果和免费结果的信息,但是这些在使用它们时没有任何区别。 我不确定这个错误到底是哪一点,并且想知道它为什么会被引起,以及如何修复它。

通过我的调试语句,countQuery的第一个if循环甚至没有被输入,因为我的sql语法中的错误接近'% ? %'.但是如果我只选择*而不是尝试基于LIKE子句进行限制,我仍然得到 命令不同步错误。

trans by 2019-09-13T18:34:44Z

MySQL选择昨天的d

如何显示和计算昨天的日期值?我使用time()在数据库中插入日期。 例:

URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314

我想要显示表中存在多个URL的URL以及昨天访问过多少个URL。 示例结果:

LINK       | timesExisted | timesVisitedYesterday
Google.com |       2      | 2
youtube.com|       3      | 3

我已经有了关于获取昨天日期的想法,但我不知道如何计算昨天URL存在的次数并计算表中存在的URL的次数。

trans by 2019-09-13T18:00:40Z

sql - 如何在MySQL中创建关系

在课堂上,我们都在“学习”数据库,每个人都在使用Access。 对此感到厌烦,我正在尝试做其他类正在做的事情,但使用MySQL的原始SQL命令而不是使用Access。

我已设法创建数据库和表,但现在如何在两个表之间建立关系?

如果我有这样的两个表:

CREATE TABLE accounts(
    account_id INT NOT NULL AUTO_INCREMENT,
    customer_id INT( 4 ) NOT NULL ,
    account_type ENUM( 'savings', 'credit' ) NOT NULL,
    balance FLOAT( 9 ) NOT NULL,
    PRIMARY KEY ( account_id )
)

CREATE TABLE customers(
    customer_id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    address VARCHAR(20) NOT NULL,
    city VARCHAR(20) NOT NULL,
    state VARCHAR(20) NOT NULL,
)

如何在两个表之间创建“关系”? 我希望每个帐户都被“分配”一个customer_id(以表明谁拥有它)。

trans by 2019-09-13T16:04:40Z

如何在MySQL / MariaDB中创建具有root权限的用户?

我想创建一个拥有root用户拥有的所有权限的用户,用户应该能够访问所有数据库,创建数据库并且应该能够向其他用户授予权限。

trans by 2019-09-13T09:32:04Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共47页