Schema\Builder类有In [228]:
cols = [df[col].squeeze() for col in df]
pd.concat(cols, ignore_index=True)
Out[228]:
0 1.474071
1 -1.071357
2 0.221471
3 -0.964980
4 -1.328865
5 0.228440
6 -1.197071
7 0.306996
8 -0.014805
9 1.588931
10 -0.014805
11 0.964980
12 -0.064034
13 0.441153
14 -0.744471
15 -0.845696
16 1.682706
17 0.901805
18 -1.066969
19 -0.028665
20 -0.284319
21 0.476720
22 -0.284319
23 -0.845696
24 0.781836
25 0.583787
26 1.729689
27 1.846883
28 0.888782
29 0.520260
30 -0.858447
31 1.574159
32 -1.461665
33 -0.242861
34 -1.461665
35 1.846883
36 -1.282782
37 2.353925
38 0.758527
39 -1.340896
40 -1.717693
41 1.171216
42 -0.303421
43 0.384316
44 0.650776
45 0.473424
46 0.650776
47 -1.340896
dtype: float64
和hasTable()
方法分别检查表和列是否存在。
是否有任何方法或方法来检查索引键(例如唯一键)是否存在?
答案 0 :(得分:14)
虽然Laravel没有提供检查密钥是否存在的任何方法,但您可以使用任何of the available queries in MySQL,然后使用hasColumn()
。
例如:
DB::select()
只需将$keyExists = DB::select(
DB::raw(
'SHOW KEYS
FROM your_table_name
WHERE Key_name=\'your_key_name\''
)
);
和your_table_name
替换为正确的值。
答案 1 :(得分:7)
如果您使用的是Laravel,那么很可能您可以访问像Eloquent这样的ORM。假设您正在使用Eloquent,您可能会做这样的事情:
try {
Schema::table(
'the_name_of_your_table',
function (Blueprint $table) {
$sm = Schema::getConnection()->getDoctrineSchemaManager();
$indexesFound = $sm->listTableIndexes('the_name_of_your_table');
$indexesToCheck = [
'index_name_1',
'index_name_2',
'index_name_3',
'index_name_4'
];
foreach ($indexesToCheck as $currentIndex) {
if (array_key_exists($currentIndex, $indexesFound)) {
// The current index exists in the table, do something here :)
}
}
}
);
} catch (Exception $e) {
}
答案 2 :(得分:0)
获取特定表的所有键详细信息
$keys = DB::select(DB::raw('SHOW KEYS from users'));
foreach($keys as $item)
{
echo $item->Key_name;
}
如果您不知道唯一键名,但是知道表和列名称,那么这里是示例代码。
$keys = DB::select(DB::raw('SHOW KEYS from users'));
foreach($keys as $item)
{
if($item->Column_name == 'email')
{
Schema::table('users', function (Blueprint $table) use($item) {
$table->dropUnique($item->Key_name);
});
}
}