我只是在学习Laravel,并且有一个工作的迁移文件来创建一个用户表.我试图填充用户记录作为迁移的一部分:
public function up()
{
Schema::create('users', function($table){
$table->increments('id');
$table->string('email', 255);
$table->string('password', 64);
$table->boolean('verified');
$table->string('token', 255);
$table->timestamps();
DB::table('users')->insert(
array(
'email' => 'name@domain.com',
'verified' => true
)
);
});
}
Run Code Online (Sandbox Code Playgroud)
但是我在运行时遇到以下错误php artisan migrate:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'vantage.users' doesn't exist
Run Code Online (Sandbox Code Playgroud)
这显然是因为Artisan还没有创建表,但所有文档似乎都说有一种方法可以使用Fluent Query来填充数据作为迁移的一部分.
谁知道怎么样?谢谢!
我正在添加这个表:
CREATE TABLE contenttype (
contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT,
class VARBINARY(50) NOT NULL,
packageid INT UNSIGNED NOT NULL,
canplace ENUM('0','1') NOT NULL DEFAULT '0',
cansearch ENUM('0','1') NOT NULL DEFAULT '0',
cantag ENUM('0','1') DEFAULT '0',
canattach ENUM('0','1') DEFAULT '0',
isaggregator ENUM('0', '1') NOT NULL DEFAULT '0',
PRIMARY KEY (contenttypeid),
UNIQUE KEY packageclass (packageid, class)
);
Run Code Online (Sandbox Code Playgroud)
我得到一个1050"桌子已经存在"
但该表不存在.有任何想法吗?
编辑:更多细节,因为每个人似乎都不相信我:)
DESCRIBE contenttype
Run Code Online (Sandbox Code Playgroud)
收益率:
1146 - 表'gunzfact_vbforumdb.contenttype'不存在
和
CREATE TABLE gunzfact_vbforumdb.contenttype(
contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT ,
class VARBINARY( 50 ) …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows XP.我在phpMyAdmin中使用其内置的create table功能创建了一个表,我的数据库名是ddd.
它生成以下代码:
CREATE TABLE `ddd`.`mwrevision` (
`asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`sddd` INT NOT NULL
) ENGINE = INNODB;
Run Code Online (Sandbox Code Playgroud)
并显示以下错误:
MySQL said:
#1146 - Table 'ddd.mwrevision' doesn't exist
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
例如,这不起作用:
DELIMITER //
CREATE PROCEDURE countRows(tbl_name VARCHAR(40))
BEGIN
SELECT COUNT(*) as ct FROM tbl_name;
END //
DELIMITER ;
CALL countRows('my_table_name');
Run Code Online (Sandbox Code Playgroud)
生产:
ERROR 1146 (42S02): Table 'test.tbl_name' doesn't exist
Run Code Online (Sandbox Code Playgroud)
但是,这可以按预期工作:
SELECT COUNT(*) as ct FROM my_table_name;
Run Code Online (Sandbox Code Playgroud)
在select语句中将参数用作表名需要什么语法?这甚至可能吗?
有人知道在1146: Table '<database>.<table>' doesn't exist你的桌子确实存在的情况下你会在什么条件下收到错误?
我在5台服务器上使用相同的代码,只有我最近租用的一台显示此错误,所以我怀疑它可能是某种设置或安装错误.我可以从命令行执行我的sql语句就好了.显然,我也可以从命令行看到该表.我建立连接时没有任何连接错误(我正在使用mysqli,顺便说一句).
任何帮助,将不胜感激.
确切查询:
$sql = "SELECT DISTINCT(mm_dic_word) AS word FROM spider.mm_dictionary WHERE mm_dic_deleted=0";
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的数据库名称symfony中导入此sql
CREATE TABLE IF NOT EXISTS ingredient (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
我明白了
#1146 - Table 'symfony.ingredient' doesn't exist
Run Code Online (Sandbox Code Playgroud)
这似乎很奇怪,因为我在这里尝试创建这个表,所以...为什么它不起作用?如果我尝试,我也遇到了同样的问题
CREATE TABLE symfony.ingredient
Run Code Online (Sandbox Code Playgroud)
或者是symfony 2中的功能
c:\Dev\Symfony>php app/console doctrine:schema:create
Run Code Online (Sandbox Code Playgroud)
PS:我只有xampp的新版本才有这个问题.
编辑
好吧,我以某种方式设法解决了我的问题.我删除了我的数据库,然后创建了一个(不使用接口),最后我重新启动了mysql服务.我不知道为什么以及它如何解开我,但我希望这会对某人有所帮助.
我启用日志记录使用:
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Run Code Online (Sandbox Code Playgroud)
所有执行的查询都记录到mysql.general_log表中.没事.
然后表变大了,我想删除表中的所有记录.我执行了:
DELETE FROM general_log
Run Code Online (Sandbox Code Playgroud)
但这导致了一个错误,表示我无法锁定日志表.所以,我在禁用日志记录后删除了表格:
SET GLOBAL general_log = 'OFF';
DROP TABLE general_log;
Run Code Online (Sandbox Code Playgroud)
我希望再次启用日志记录会创建表,但我无法启用它.当我执行这个:
SET GLOBAL general_log = 'ON';
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
表'mysql.general_log'不存在
mysql.general_log?mysql.general_log无痛的方式安全地清除?我使用名为library的数据库的mysqldump实用程序创建了一个名为ab.sql的文件.它工作正常.现在我正在尝试使用mysqlimport恢复它.我的数据库已存在.但我想覆盖它.我正在使用该命令
mysqlimport -uroot -p**** library D:/ab.sql
Run Code Online (Sandbox Code Playgroud)
在命令行中但是它给出了一个错误,
mysqlimport:错误:1146,当使用table:ab时,表'library.ab'不存在
迫切需要帮助.
我在运行django单元测试时遇到错误,我之前没有经历过这种情况,并且整个下午都在谷歌上搜索它.
我在运行django manage.py test后在终端中收到此错误:
Error: Database test_unconvention couldn't be flushed. Possible reasons:
* The database isn't running or isn't configured correctly.
* At least one of the expected database tables doesn't exist.
* The SQL was invalid.
Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run.
The full error: (1146, "Table 'test_unconvention.media_image' doesn't exist")
Run Code Online (Sandbox Code Playgroud)
运行django-admin.py sqlflush时会引用media_images表,并在运行django manage.py syncdb时生成ok.
这是图像模型,看起来很麻烦:
from django.db import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
class …Run Code Online (Sandbox Code Playgroud) 我使用mysqldump导出我的数据库,然后我将其导入到我的其他服务器上的MySQL中.如果我"显示表格",我现在可以看到我的所有表格,但我实际上无法选择或描述它们中的任何一个.
错误1146(42S02):表'mydatabase.user'不存在
我的所有表都是InnoDB.我看到人们在使用old_passwords时遇到的一个问题,所以我在my.cnf中明确地将其设置为0,并确保mysql表中的所有密码都是41个十六进制数字,因为它们应该用于新密码.
mysql-error-1146 ×10
mysql ×9
sql ×3
php ×2
django ×1
innodb ×1
laravel ×1
migration ×1
my.cnf ×1
mysqldump ×1
phpmyadmin ×1
python ×1
symfony ×1
unit-testing ×1
xampp ×1