我有一个FooBar
视图,如:
CREATE VIEW `FooBar` AS
SELECT * FROM `Foo`.`Bar`
UNION ALL
SELECT * FROM `Foo1`.`Bar`
当我SELECT * FROM FooBar
时,我得到了:
表' /tmp/#sql_1234_5.MYI' ;;的密钥文件不正确尝试修复它
当我运行这样的select语句时:
SELECT * FROM `Foo`.`Bar`
UNION ALL
SELECT * FROM `Foo1`.`Bar`
一切顺利。我的FooBar视图显然存在问题。
当我REPAIR TABLE FooBar
时,我
' WhiskerDatabase.VisualDiscrimSuperimposed_Results'不是BASE TABLE
损坏
我尝试DROP VIEW FooBar
并重新CREATE VIEW FooBar
......但问题仍然存在。
我找不到/var/lib/mysql/MyDB/
中的sql_1234_5.MYI文件。
答案 0 :(得分:0)
找到解释here。 MySQL构建一个临时文件。临时文件太大,无法容纳在内存中。
调整系统内存或使用DROP TABLE `FooBar` IF EXISTS;
CREATE TABLE `FooBar` AS SELECT * FROM `Foo`.`Bar`;
INSERT INTO `FooBar` SELECT * FROM `Foo1`.`Bar`;
子句可以帮助解决问题。
我通过创建一个创建表而不是视图的过程来解决我的问题。如:
@{
foreach (var article in ViewBag.DisplayPosts)
{
<a class="ArticleLink" href="@Url.Action("SinglePost", "Post", article.Id)">@article.Title</a>
<p>@article.CreatedOn</p>
<br/>
}
}