命令行:登录MySQL并在一行中执行命令
我经常发现需要检查表结构(例如在编写PHP脚本时检查列名)。我唯一的目标是:速度。我使用“Adminer”,点击几下就可以查看它。但我想更快地完成这项工作,因为我总是打开一个命令行窗口。因此,我想创建一个函数,允许我执行以下操作:命令行:登录MySQL并在一行中执行命令,mysql,command-line,Mysql,Command Line,我经常发现需要检查表结构(例如在编写PHP脚本时检查列名)。我唯一的目标是:速度。我使用“Adminer”,点击几下就可以查看它。但我想更快地完成这项工作,因为我总是打开一个命令行窗口。因此,我想创建一个函数,允许我执行以下操作: mysql-uuser-ppassword&&USE-database;&&描述表格 我会以一种我可以称之为: 描述数据库表 瞧,我得到了数据库结构。但我的问题是:如何登录MySQL并在一个脚本中运行某些查询??我还没有找到这样做的方法 mysql database
mysql-uuser-ppassword&&USE-database;&&描述表格代码>
我会以一种我可以称之为:
描述数据库表
瞧,我得到了数据库结构。但我的问题是:如何登录MySQL并在一个脚本中运行某些查询??我还没有找到这样做的方法
mysql database -uuser -ppassword -e "describe table;"
例如:
mysql -uuser -ppassword mysql -e "describe time_zone;"
+------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+----------------+
| Time_zone_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Use_leap_seconds | enum('Y','N') | NO | | N | |
+------------------+------------------+------+-----+---------+----------------+
如果您正在寻找一种在shell中对其进行别名的方法,则可以使用如下函数:
function describe() { mysql -uuser -ppassword $1 -e "describe $2;"; }
describe mysql time_zone
+------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+----------------+
| Time_zone_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Use_leap_seconds | enum('Y','N') | NO | | N | |
+------------------+------------------+------+-----+---------+----------------+
这只是一种替代方法,而不是-e
标志,您可以在查询中使用管道。如果查询是由其他进程生成的,则此选项非常有用:
echo "DESCRIBE table;" | mysql -uuser -ppassword databasename
或者,如果文件中列出了一系列语句,如:
# File: statements.sql
DESCRIBE table;
SELECT col FROM table;
您可以指示mysql读取该文件:
mysql -uuser -ppassword databasename < statements.sql
mysql-uuser-ppassword-databasename
我喜欢将命令直接回显到MySQL中。那很有帮助!