我正在尝试编写一个过程或函数,它可以返回所有带有一行数据的表头,作为下面的应用程序指令 - 这些指令与表中的实际字段不是相同的数据类型。
E.g。
MyTable的:
| pk | fName | lName | comment |
我跑了
SELECT * FROM MyTable WHERE PK = 0;
这将返回ADODB.RecordSet中的所有标题(由于没有PK而没有存在0的行),我可以在其中提取字段数据类型,字符限制等。
我想在每个字段中强制返回(如果可能的话)TEXT,以便输出包含每种类型列的自定义标识符:
| pk | fName | lName | comment |
EX UQ UQ OPT
到目前为止,我所提出的只是查询数据库两次,一个用于表,另一个用于我的自定义条目,这些条目仅以逗号分隔列表的形式返回。
CREATE PROCEDURE `definition` (tbl VARCHAR(256))
BEGIN
IF tbl = 'MyTable' THEN
SELECT * FROM `MyTable` WHERE `pk` = 0;
ELSEIF tbl = 'MyTableId' THEN
SELECT `id` FROM `tableId` WHERE `table` = tbl;
END IF;
END
这很有效,但很麻烦。我需要一个单独的表,只是为了ID,我真的想保留存储过程中的定义 - 像这样:
IF tbl = 'MyTable' THEN
SELECT `pk`, `fName`, `lName`, `comment` FROM `MyTable` WHERE `pk` = 0
VALUES 'EX', 'UQ', 'UQ', 'OPT';
显然这不起作用,甚至不确定是否可行,因为EX
值不是INT
列所期望的pk
。
这可能吗?!
修改
我知道我可以执行SELECT 'Hey' FROM tbl;
这样的内容,但不确定在特定标题下包含此内容的链接。
答案 0 :(得分:0)
我正在回答我自己的答案,其他人有机会寻找同样的想法 - 我设法让它在一个查询中工作......
import { Ionicons } from "react-native-vector-icons";
..............
.............
..............
const TabsBar = TabNavigator(
{
Home: {screen: HomeScreen},
Profile: {screen: ProfileScreen},
},
{
navigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, tintColor }) => {
const { routeName } = navigation.state;
let iconName;
if (routeName === 'Home') {
iconName = 'search';
}
else if (routeName === 'Profile') {
iconName = 'contact';
}
return <Ionicons name={iconName} size={25} color={tintColor} />;
},
}),
tabBarOptions: {
activeTintColor: '#222222',
inactiveTintColor: '#222222',
},
tabBarComponent: TabBarBottom,
tabBarPosition: 'bottom',
animationEnabled: false,
swipeEnabled: false,
initialRouteName: 'Home'
}
);
在应用程序方面,我所要做的就是从headers.count获取所有常规信息 - 1然后分割()逗号上的最后一个字段名称。我也做检查;如果split split.count不等于headers.count-1则会出现问题,以防表格稍后更改。
这意味着我可以将我对许多表信息的请求连接到一个衬里,并在同一行的存储过程中拥有所有“自定义”信息。为了扩展,我实际上可以指定对齐的表头而不是*:
SELECT *, 'EX,UQ,UQ,OPT' FROM MyTable WHERE PK = 0;